file.txt中内容示例如下,文本中内容每行用英文逗号 "," 作为分隔符,如何根据第一列去重?
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50b8
625784a8d08e58d111c1f72c,6251e2b4d08ef5357a6c50af
你可以使用 awk
命令来根据第一列去重,并将结果保存到一个新的文件中。
以下是一个简单的 awk
命令来实现这个需求:
awk -F',' '!seen[$1]++' file.txt > output.txt
这个命令的解释如下:
-
-F','
:指定字段分隔符为逗号。 -
!seen[$1]++
:seen
是一个关联数组,用于记录已经出现过的第一列值。如果该值第一次出现,!seen[$1]++
为真(即!0
),然后将这一行输出。 -
file.txt
:输入文件名。 -
> output.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} }'
网友评论