使用 `sort -u` 和 `sort | 的区别 uniq -u`

and*_*esp 5 sort uniq

我在探索 bash 时进入了一个级别,该级别包括查找在某个文件中仅出现一次的文本行。

为什么sort -u file命令的输出与 的输出不同sort file| uniq -u?他们不应该是一样的吗?

Mic*_*mer 12

sort -u并且sort | uniq 确实产生相同的输出*:输入中的所有行,每行仅一次,按升序排列。这是 的默认行为uniq

uniq -u,另一方面,要求

-u 禁止写入在输入中重复的行。

这是一种非常不同的行为:仅输出重复的行。当文件首先被排序时,这意味着在整个文件中只出现一次的行(这是你想要的)。


*关于如何sortuniq考虑平等有一些注意事项,Stéphane 在这个相关问题的回答中指出了这一点。对于 POSIX 语言环境或某种标准化形式的文件,它们是相同的;对于其他人,可能会有明显的差异。