使用“sort -u”和“sort |”之间的区别独特-u`

使用“sort -u”和“sort |”之间的区别独特-u`

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

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

答案1

sort -usort | uniq 产生相同的输出*:输入中的所有行,每行恰好一次,按升序排列。这是 的默认行为uniq

uniq -u,另一方面,要求

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

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


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

相关内容