Ответы:
Я понял; один из uniq
вариантов -c
для «префикса строк по количеству вхождений»:
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, вывод только uniq -c
что показывал, A 3
а потом показывал A 1
. Сортировка в первую очередь гарантирует, что все идентичные строки будут сгруппированы вместе
Я только что пришел сюда с похожей проблемой. Из этого мне удалось собрать немного более продвинутую команду, которая, я надеюсь, будет полезна для других.
Как сказал Стивен Д. в комментариях выше, uniq
подсчитываются только соседние повторяющиеся строки, поэтому сначала нужно отсортировать строки. После этого мы находим уникальные строки, затем сортируем их снова, поэтому наиболее часто встречающиеся строки находятся сверху.
sort file.txt | uniq -c | sort -nr > output.txt
Вывод перенаправляется в файл output.txt
. Если вы просто хотите просмотреть результаты в командной строке, удалите перенаправление и измените последнюю команду sort -n
таким образом, чтобы самая общая строка была внизу, то есть определенно все еще на экране.
cat file.txt | sort
просто sort file.txt
. :)
cat
то более интересным. Так как, вы знаете, нет cat
.
< file.txt sort | uniq -c
. Это легко редактировать, и все же избегает ненужного cat
.
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'