【awk】使用awk根据指定列去重

2024-08-08  本文已影响0人  Bogon

file.txt中内容示例如下,文本中内容每行用英文逗号 "," 作为分隔符,如何根据第一列去重?

625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50af

你可以使用 awk 命令来根据第一列去重,并将结果保存到一个新的文件中。

以下是一个简单的 awk 命令来实现这个需求:

awk -F',' '!seen[$1]++' file.txt >   output.txt

这个命令的解释如下:

这样,你就能得到一个按第一列去重后的结果文件 output.txt

file.txt中内容示例如下,文本中内容每行用英文逗号 "," 作为分隔符,需要筛选出同样行内容出现2次的?

625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50af
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c12358
625784a12588e58d111c1f72c,6251e2b4d08ef5357a6c50b8
625784a8d134758d111c1f72c,6251e2b4d08ef5357a6c50af
cat  file.txt   | sort | uniq   -c | awk '{if($1==2) print $2}' 
$ cat  file.txt   | sort | uniq   -c
      1 625784a12588e58d111c1f72c,6251e2b4d08ef5357a6c50b8
      1 625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c12358
      1 625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50af
      2 625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
      1 625784a8d134758d111c1f72c,6251e2b4d08ef5357a6c50af

$ cat  file.txt   | sort | uniq   -c | awk '{if($1==2) print $2}'
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
echo  "AA,BB,CC,DD"  |  awk -F ","  '{ for(i=1;i<=NF;i++)   {print $i} }'  
上一篇 下一篇

猜你喜欢

热点阅读