Карточка Junior grep, sed, awk, find, xargs спрашивают часто обновлено

Топ IP в access.log

Вопрос

Как одной строкой найти 10 IP с наибольшим числом запросов в access.log формата nginx?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

awk '{print $1}' access.log sort uniq -c sort -rn head -10. Первая колонка combined-лога это IP; sort нужен перед uniq -c; sort -rn по числу по убыванию.

Ответ

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10. Первая колонка combined-лога это IP; sort нужен перед uniq -c; sort -rn по числу по убыванию. Вариант на одном awk: awk '{c[$1]++} END {for (i in c) print c[i], i}' access.log | sort -rn | head.

Разбор

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10. Первая колонка combined-лога это IP; sort нужен перед uniq -c; sort -rn по числу по убыванию. Вариант на одном awk: awk '{c[$1]++} END {for (i in c) print c[i], i}' access.log | sort -rn | head.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.