打印出文件中出现次数最多的值

时间:2016-04-12 10:40:16

标签: bash awk

在bash shell脚本中,我想查看一个数字列表,然后打印出最常出现的数字。如果有几个不同的数字出现的次数相同,我想打印最高的数字。例如,在这样的文件中:

10 10 10 15 15 20 20 20 20

我想打印值20。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

如果数字在文件中,每行一个:

sort < myfile | uniq -c | sort -r | head -1

没有计数:

A=$(sort < myfile | uniq -c | sort -r | head -1) set $A echo $2

答案 1 :(得分:0)

您可以使用此命令 -

echo 10 10 10 15 15 20 20 20 20 | sed 's/ /\n/g' | sort | uniq -c | sort -V | tail -n 1 | awk '{print $2}'

它将打印您想要的数字。