查找最频繁的行并计算它们

时间:2016-05-21 12:49:27

标签: bash awk

如何在这样的列表中计算出现的次数:

onion
apple
kiwi
orange
kiwi
orange
onion
kiwi
kiwi
orange

我需要列出每个唯一线发生的次数,例如

4 kiwi
3 orange
2 onion
1 apple

此外,行可能包含特殊字符和数字。

1 个答案:

答案 0 :(得分:7)

我会在管道中使用一堆unix命令:

$ sort sample| uniq -c | sort -nrk 1
   4 kiwi
   3 orange
   2 onion
   1 apple

如果您需要限制输出,可以在命令行的末尾使用head -n <<size>>

Uniq需要对输入文件进行排序,这就是我首先在名为&#34; sample&#34;的文件上调用sort的原因。之后,我们希望按照反向数字顺序在第一列上排序输出。