sort -u 和 uniq -u 之间的区别

sort -u 和 uniq -u 之间的区别

直到现在我一直在使用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

也可以看看:

相关内容