我有一个包含两列的大文件,我想根据第 2 列中的重复条目删除该行。我想删除两个重复条目。
我试过:
awk '!seen[$2]++' filename
Run Code Online (Sandbox Code Playgroud)
但它只会删除一个重复项。
输入文件示例:
1 3
2 3
4 10
1 6
5 3
Run Code Online (Sandbox Code Playgroud)
预期输出:
4 10
1 6
Run Code Online (Sandbox Code Playgroud)
$ awk 'NR==FNR{cnt[$2]++; next} cnt[$2]==1' file file
4 10
1 6
Run Code Online (Sandbox Code Playgroud)
或者如果您无法读取输入两次(例如,如果它来自管道),则:
$ 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
Run Code Online (Sandbox Code Playgroud)