Вид и количество количества возникновения строк

Поскольку это не ответственность glibc. glibc делегирует к другим сервисам, установленным в системе для автора; если бы что-либо, это были бы те, которые обеспечили бы способность изменить userdb.

158
26.11.2014, 13:31
4 ответа
| sort | uniq -c

, Как указано в комментариях.

Передача по каналу вывода в вид организует вывод в алфавитный/числовой порядок.

Это - требование, потому что uniq только соответствует на повторных строках, т.е.

a
b
a

, Если вы будете использовать uniq на этом текстовом файле, то это возвратит следующее:

a
b
a

Это вызвано тем, что два с разделяются b - они не последовательные строки. Однако при первой сортировке данных в алфавитный порядок сначала как

a
a
b

Затем , uniq удалит строки повторения. опция-c uniq считает количество дубликатов и обеспечивает вывод в форме:

2 a
1 b

Ссылки:

213
27.01.2020, 19:27

можно использовать ассоциативный массив на awk, а затем - опционально - sort:

$ awk ' { tot[$0]++ } END { for (i in tot) print tot[i],i } ' access.log | sort

output:

1 c.php
1 d.php
2 b.php
3 a.php
12
27.01.2020, 19:27
[your command] | sort | uniq -c | sort -nr

Принятый ответ почти полный, возможно, вы захотите добавить дополнительный sort -nr в конце, чтобы отсортировать результаты с наиболее часто встречающимися строками первыми

uniq опции:

-c, --count
       prefix lines by the number of occurrences

sort options:

-n, --numeric-sort
       compare according to string numerical value
-r, --reverse
       reverse the result of comparisons

В конкретном случае, когда строки, которые вы сортируете, являются числами, вам нужно использовать sort -gr вместо sort -nr, смотрите комментарий

121
27.01.2020, 19:27

Вы можете использовать clickhouse -клиентский инструмент для работы с файлами, например, с таблицей sql с одним столбцом в этом случае:

clickhouse-local --query \
"select data, count() from file('access.log', TSV, 'data String') group by data order by count(*) desc limit 10"

Мой краткий эксперимент показывает, что это примерно в 50 раз быстрее, чем

cat access.log | sort | uniq -c | sort -nr | head 10
3
24.09.2021, 14:30

Теги

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