我试图从文件中删除重复的行,包括原始行,但我正在尝试的以下命令是对行进行排序,我希望它们的顺序与它们在输入文件中的顺序相同。
awk '{++a[$0]}END{for(i in a) if (a[i]==1) print i}' test.txt
Input:
123
aaa
456
123
aaa
888
bbb
Output I want:
456
888
bbb
最佳答案
如果您可以读取输入文件两次,则代码更简单:
$ awk 'NR==FNR{a[$0]++; next} a[$0]==1' ip.txt ip.txt
456
888
bbb
单程:
$ awk '{a[NR]=$0; b[$0]++} END{for(i=1;i<=NR;i++) if(b[a[i]]==1) print a[i]}' ip.txt
456
888
bbb
关于awk - 用于删除重复行的 shell awk 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60943841/