在bash中查找文件中最频繁的行

时间:2013-06-04 15:57:37

标签: bash lines

假设我有一个类似如下的文件:

Abigail 85
Kaylee 25
Kaylee 25
kaylee
Brooklyn
Kaylee 25
kaylee 25

我想找到最重复的行,输出必须只是行。

我试过

sort list | uniq -c

但我需要干净的输出,只需要最重复的行(在本例中为Kaylee 25)。

4 个答案:

答案 0 :(得分:5)

Kaizen~

$ sort zlist | uniq -c | sort -r | head -1|  xargs | cut -d" " -f2-

Kaylee 25

这有帮助吗?

答案 1 :(得分:3)

恕我直言,这些答案都不会对结果进行正确排序。原因是没有-n选项的排序将按照这样排序" 1 10 11 2 3 4"等,而不是" 1 2 3 4 10 11 12&#34 ;。所以,像这样添加-n

sort zlist | uniq -c | sort -n -r | head -1

然后,您可以将其传输到xargs或sed,如前所述。

答案 2 :(得分:1)

awk -

awk '{a[$0]++; if(m<a[$0]){ m=a[$0];s[m]=$0}} END{print s[m]}' t.lis

答案 3 :(得分:0)

$ uniq -c list | sort -r | head -1 | awk '{$1=""}1'

Kaylee 25

这是你要找的吗?