我有一个两列的大文件,我想根据第2列中的重复条目删除该行。我想删除这两个重复条目。
我试过了:
awk '!seen[$2]++' filename
但是它仅删除一个重复项。
输入文件示例:
1 3
2 3
4 10
1 6
5 3
预期产量:
4 10
1 6
最佳答案
$ awk 'NR==FNR{cnt[$2]++; next} cnt[$2]==1' file file
4 10
1 6
或如果您无法两次读取输入(例如,如果它来自管道),则:
$ awk '{rec[NR]=$0; key[NR]=$2; cnt[$2]++} END{for (i=1; i<=NR; i++) if (cnt[key[i]] == 1) print rec[i]}' file
4 10
1 6
关于awk - 删除第2列中包含重复条目的所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56896595/