1

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

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

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

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

我想知道为什么行数会有所不同?有人可以解释一下吗?

谢谢乌彭德拉

4

2 回答 2

0

uniq用一行替换多次连续出现的一行;如果它们不连续,则不会被替换。例如,考虑输入:

word
word
other
word
word

uniq将变成:

word
other
word

现在,当您sort第一次时,原始输入变为:

other
word
word
word
word

然后uniq,现在word连续所有 s ,将输出:

other
word
于 2013-08-02T03:44:42.223 回答
0

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

但是,它应该仅适用于您的第一个命令,无论如何您没有更改 test.txt 文件仪式,您只是得到计数。

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

于 2013-09-20T12:10:57.263 回答