我试图过滤掉一些东西并使用一个有两个不同的长 linux 命令。在第一种情况下,我使用过
cat test.txt | sort | uniq -c | wc -l
在第二种情况下,我使用了没有排序
cat test.txt | uniq -c | wc -l
我想知道为什么行数会有所不同?有人可以解释一下吗?
谢谢乌彭德拉
uniq
用一行替换多次连续出现的一行;如果它们不连续,则不会被替换。例如,考虑输入:
word
word
other
word
word
这uniq
将变成:
word
other
word
现在,当您sort
第一次时,原始输入变为:
other
word
word
word
word
然后uniq
,现在word
连续所有 s ,将输出:
other
word
正如 Richard 所描述的 uniq 工作原理,它取决于用法。
但是,它应该仅适用于您的第一个命令,无论如何您没有更改 test.txt 文件仪式,您只是得到计数。
如果您对不使用排序感兴趣,最好使用一些循环来获取重复的记录并使用 bash 脚本获取计数。