如何从文件中找到唯一的行并删除所有重复项?我的输入文件是:
1
1
2
3
5
5
7
7
我希望的结果是:
2
3
sort file | uniq
无法完成任务,它只会显示所有值1次。
这是我尝试的第一次
skilla:~# uniq -u all.sorted
76679787
76679787
76794979
76794979
76869286
76869286
......
在执行 cat -e all.sorted 命令后
skilla:~# cat -e all.sorted
$
76679787$
76679787 $
76701427$
76701427$
76794979$
76794979 $
76869286$
76869286 $
每一行的末尾都有一个空格 :( 去掉所有末尾的空格后,它就可以工作了!
谢谢
不必先排序再使用uniq
,你也可以直接使用sort -u
。来自sort --help
:
-u, --unique with -c, check for strict ordering;
without -c, output only the first of an equal run
简短、易懂的方法:
sort -u file
sort file | uniq -u
将会输出到控制台。 - ma77csort file | uniq
显示所有值仅一次的原因是因为它立即打印第一次遇到的行,对于后续的重复行,它只是跳过它们。 - MrObjectOriented