我在探索 bash 时进入了一个级别,该级别包括查找在某个文件中仅出现一次的文本行。
为什么sort -u file
命令的输出与 的输出不同sort file| uniq -u
?他们不应该是一样的吗?
Mic*_*mer 12
sort -u
并且sort | uniq
确实产生相同的输出*:输入中的所有行,每行仅一次,按升序排列。这是 的默认行为uniq
。
-u
禁止写入在输入中重复的行。
这是一种非常不同的行为:仅输出不重复的行。当文件首先被排序时,这意味着在整个文件中只出现一次的行(这是你想要的)。
*关于如何sort
和uniq
考虑平等有一些注意事项,Stéphane 在这个相关问题的回答中指出了这一点。对于 POSIX 语言环境或某种标准化形式的文件,它们是相同的;对于其他人,可能会有明显的差异。