如何根据前两列从文件中删除两个重复项

如何根据前两列从文件中删除两个重复项

我需要test.txt根据前两列从文件中删除两个重复项:

tom,22,777
tom,22,888
tom,18,54
ray,44,43843

预期结果:

tom,18,54
ray,44,43843

我尝试使用cat test.txt | sort -u t, k1,1 k2,2但它不起作用

答案1

您可以使用awk: 处理文件两次,一次计算第一个和第二个字段的出现次数,然后再次打印行(如果计数为 1):

awk -F, 'NR==FNR{seen[$1,$2]++;next};seen[$1,$2]==1' infile infile

答案2

一种方法是假设 GNU grep(1)(for fgrep -f -),并假设输入中的字段仅包含字母数字字符:

cut -d , -f 1,2 file.csv | sort | uniq -d | fgrep -vwf - file.csv

答案3

尝试这个

 cat file.txt | grep -v  "`cut -d , -f 1,2 file.txt | uniq -d`"

相关内容