我正在尝试从文件中删除重复的行,包括原始行,但我正在尝试的以下命令是对行进行排序,我希望它们的顺序与它们在输入文件中的顺序相同。
awk '{++a[$0]}END{for(i in a) if (a[i]==1) print i}' test.txt
Run Code Online (Sandbox Code Playgroud)
Input:
123
aaa
456
123
aaa
888
bbb
Output I want:
456
888
bbb
Run Code Online (Sandbox Code Playgroud)
如果您可以读取输入文件两次,则代码更简单:
$ awk 'NR==FNR{a[$0]++; next} a[$0]==1' ip.txt ip.txt
456
888
bbb
Run Code Online (Sandbox Code Playgroud)
单程:
$ 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |