为什么两个命令之间存在差异

时间:2013-08-02 03:41:21

标签: sorting unique

我试图过滤掉一些东西并使用一个有两个不同的长linux命令。在第一种情况下,我使用了

cat test.txt | sort | uniq -c | wc -l

在第二种情况下,我使用过 没有排序

cat test.txt | uniq -c | wc -l

我想知道为什么行数有差异?有人可以解释一下吗?

由于 众议员

2 个答案:

答案 0 :(得分:0)

uniq用一行替换多行连续出现的行;如果他们不连续,他们就不会被取代。例如,考虑输入:

word
word
other
word
word

uniq将变为:

word
other
word

现在,当您sort首先,然后原始输入变为:

other
word
word
word
word

然后uniq,现在连续word个,将输出:

other
word

答案 1 :(得分:0)

正如Richard所描述的uniq工作原理,它取决于用法。

然而,只有你的第一个命令它才能正常工作,无论如何你不会改变test.txt文件,你只需要计算。

如果您对不使用sort感兴趣,那么最好使用一些循环来获取重复的记录&使用bash脚本获取计数。