Найти наиболее частую строку в файле в bash

Предположим, у меня есть файл, подобный следующему:

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

Я хотел бы найти наиболее повторяющуюся строку, на выходе должна быть только строка.

я пробовал

sort list | uniq -c

но мне нужен чистый вывод, просто самая повторяющаяся строка (в этом примере Kaylee 25).

4 ответа

Решение

Кайдзен ~

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

Kaylee 25

это помогает?

ИМХО, ни один из этих ответов не отсортирует результаты правильно. Причина в том, что без -n, вариант будет сортировать вот так1 10 11 2 3 4"и т. д. вместо"1 2 3 4 10 11 12"Итак, добавьте -n вот так:

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

Затем вы, конечно, можете передать это либо xargs, либо sed, как описано ранее.

awk -

awk '{a[$0]++; if(m<a[$0]){ m=a[$0];s[m]=$0}} END{print s[m]}' t.lis
$ uniq -c list | sort -r | head -1 | awk '{$1=""}1'

Kaylee 25

Это то, что вы ищете?

Другие вопросы по тегам