awk + подсчет строк из файла [дубликат]

0
20.01.2019, 16:02
1 ответ

Вы можете получить это с помощью этого конвейера, который, возможно, не является самым однородным подходом:

sort /tmp/users | uniq -c | awk '{print $2 " - " $1;}'

sortсортирует ввод, чтобы uniqмог затем обработать записи. Их нужно рассортировать. Наконец, awkвыдает окончательный отчет, который является косметической операцией. (Сравните вывод без него.)

Кроме того, если ввод содержит пустые строки, их можно пропустить. perlпригодится:

perl -lne 'print unless /^\s*$/' in | sort | uniq -c | awk '{print $2 " - " $1;}'

Вот также однородный однострочный Perl:

perl -lne '($s)=/(\S+)/; $a{$s}++ if $s; END {print "$_ - $a{$_}" for (sort keys %a)}' /tmp/users
2
28.01.2020, 02:30

Теги

Похожие вопросы