Перейти к основному содержанию

Linux — сортировка с группировкой

Linux 2

Понадобилось мне как-то выдрать из файла данные и сгруппировать результаты. К примеру, можно посмотреть статистику использования UserAgent в логах Nginx. Или посмотреть с каких IP адресов больше всего запросов.

Всё это можно сделать в консоли комбинируя sort и uniq. Сначала выбираем нужные данные, например, с помощью awk, потом сортируем sort, затем выбираем группируем с подсчётом uniq -c, и после снова сортируем результат sort -rn.

| sort | uniq -c | sort -rn

Пример:

cat ./gitlab_access.log | grep auth | awk '{print $1}' | sort | uniq -c | sort -rn

Получим что-то типа:

    120 192.168.0.42
    58 192.168.0.22
    29 192.168.0.236
    14 192.168.0.160
     8 192.168.0.162
     5 192.168.0.204
     3 192.168.0.24
     2 192.168.0.99

Теги

 

Похожие материалы

Документация по micro

Закари Йедидия, перевод В.Айсин
Micro — это текстовый редактор на базе терминала, который стремится быть простым в использовании, интуитивно понятным, а также использовать все возможности современных терминалов.

Теги

Заглушка для технических работ на Nginx

Иногда сайт нужно вывести из эксплуатации для проведения технических работ. Это может быть процесс резервного копирования, обновление, изменение конфигурации, перенос данных, или восстановление.

Теги