首页 > 解决方案 > 为什么在排序后选择唯一出现的结果与仅选择唯一出现的结果不同?

问题描述

为什么输出

uniq | wc -l

不同于

sort | uniq | wc -l

哪一个真正拥有独特的事件?

标签: bashsortinguniq

解决方案


它解释了uniq手册页中的行为,特别是:

默认情况下,uniq 会打印其输入行,除了它会丢弃除第一行之外的所有相邻重复行,因此不会重复输出行。可选地,它可以改为丢弃不重复的行,或所有重复的行。

输入不需要排序,但重复的输入行只有在它们相邻时才会被检测到。如果你想丢弃不相邻的重复行,也许你想使用sort -u. (见排序调用)

如果不sort提前uniq使用输入,则无法准确计算唯一项目。


推荐阅读