直到现在我一直在使用sort -u
它来消除重复项。
但我对软件工具生成的列表确实有疑问。
问题是: 的输出sort -u |wc
与 相同吗uniq -u |wc
?
因为它们不会产生相同的结果。该手册uniq
指定:
-u, --unique 只打印唯一的行
我的输出由 1110 个单词组成,其中sort -u
保留 1020 行uniq -u 1110
,这是正确的数量。问题是,我无法直观地发现在>
命令行末尾使用生成的列表中的任何重复项,并且总破解密码存在问题(在自定义 john the ripper 的上下文中)。
答案1
不,它们不一样。首先,sort
首先对列表进行排序;其次,uniq -u
仅打印在每次给定运行中“唯一”的那些行,即在它们之前或之后没有相同输入行的行。
$ printf "%s\n" 3 3 2 1 2 | sort -u
1
2
3
$ printf "%s\n" 3 3 2 1 2 | uniq -u
2
1
2
也可以看看:
- “sort -u”和“sort | uniq”有什么区别?
- uniq 怎么不够独特,还有 uniq --unique 呢? (这个有一个答案和更多例子)