Логи сервера в plain text, нужно быстро подсчитать количество запросов по HTTP-статусам? awk — ваш Swiss Army Knife для обработки текстовых данных прямо в терминале.
🔹 Зачем это нужно
— Мгновенная агрегация данных из логов без загрузки в БД или Python.
— Работает с любым текстовым форматом.
— Есть на каждом сервере.
🔹 Как использовать
— Подсчёт по статусам (nginx access.log):
awk '{print $9}' access.log | sort | uniq -c | sort -rn— Среднее время ответа:
awk '{sum+=$NF; n++} END {print sum/n}' access.log— Только 5xx ошибки:
awk '$9 ~ /^5/' access.log— Топ-10 IP по количеству запросов:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10— Вывести конкретные поля:
awk -F',' '{print $1, $3}' data.csv