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

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

Теги

 

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

Установка UniFi Controller на Ubuntu Server

Для управления Wi-Fi точками доступа требуется установить на сервер UniFi Controller. Контроллер помогает конфигурировать точки доступа, настраивать бесшовный роуминг и обновлять прошивки точек. Для дома или небольшого офиса - то что надо. Дёшево и сердито. Ubuntu Server может быть виртуальным.

Управление RAID контроллером LSI (Broadcom, Avago) с помощью StorCLI в Oracle Linux

Поступил вопрос написать о том, как разбиты диски на массивы в каком-то одном сервере Oracle Linux. Я, честно говоря, уже и не помню что мы там конфигурировали, воспользуемся средствами операционной системы и утилитой StorCLI.