我试图过滤掉一些东西并使用一个有两个不同的长linux命令。在第一种情况下,我使用了
cat test.txt | sort | uniq -c | wc -l
在第二种情况下,我使用过 没有排序
cat test.txt | uniq -c | wc -l
我想知道为什么行数有差异?有人可以解释一下吗?
由于 众议员
答案 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脚本获取计数。