查找唯一的行

131

如何从文件中找到唯一的行并删除所有重复项?我的输入文件是:

1
1
2
3
5
5
7
7

我希望的结果是:

2
3

sort file | uniq无法完成任务,它只会显示所有值1次。


22
文件必须首先排序。sort file | uniq -u 将会输出到控制台。 - ma77c
我认为 sort file | uniq 显示所有值仅一次的原因是因为它立即打印第一次遇到的行,对于后续的重复行,它只是跳过它们。 - MrObjectOriented
13个回答

0

这是我尝试的第一次

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 $

每一行的末尾都有一个空格 :( 去掉所有末尾的空格后,它就可以工作了!

谢谢


0

不必先排序再使用uniq,你也可以直接使用sort -u。来自sort --help

  -u, --unique              with -c, check for strict ordering;
                            without -c, output only the first of an equal run

0

简短、易懂的方法:

sort -u file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接