如果逗号分隔的字段在另一行中匹配在一起,则打印行

如果逗号分隔的字段在另一行中匹配在一起,则打印行

输入:

1,1,10,1
2,1,10,3
3,0,10,1

预期输出:

1,1,10,1
2,1,10,3

2那么如果字段编号并3在另一行中重复,如何打印行。

答案1

Quick'n'dirty 方法(需要对文件进行两次传递,第一次计算 的出现次数$2,$3,第二次在字段组合不唯一时进行打印):

$ awk -F, 'NR==FNR{a[$2 FS $3]++; next} a[$2 FS $3] > 1' file file
1,1,10,1
2,1,10,3

相关内容