Справочник

Команды wc, sort и uniq: посчитать строки, отсортировать и найти повторы

wc считает строки и слова, sort выстраивает строки по порядку, uniq убирает и считает повторы. Вместе они за одну команду показывают, кто больше всех заходит на сайт и какие ошибки он получает.

Обновлено 11.10.2026≈ 5 мин чтения
Содержание 8

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Посчитайте строки в журнале nginx: sudo wc -l /var/log/nginx/access.log. Число слева — сколько запросов записано в журнал.
  3. Узнайте, с каких IP больше всего запросов, — скопируйте команду ниже.
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

Команда берёт из каждой строки журнала IP-адрес, выстраивает адреса по порядку, считает повторы, ставит самые большие числа наверх и показывает первые 20 строк. Слева — сколько запросов, справа — адрес. О знаке | — Перенаправление вывода.

wc — посчитать

КомандаЧто покажет
wc -l file.txtчисло строк и имя файла
wc -w file.txtчисло слов
wc -m file.txtчисло символов
wc -c file.txtразмер в байтах
wc file.txtстроки, слова и байты сразу
wc -l < file.txtтолько число, без имени файла

wc считает и вывод других команд. ls | wc -l — сколько файлов в папке, grep error app.log | wc -l — сколько строк со словом error. Для второго есть и короткий путь: grep -c error app.log — Команда grep.

sort — отсортировать

КомандаЧто делает
sort file.txtпо алфавиту
sort -r file.txtв обратном порядке
sort -n file.txtпо числам: 9 раньше 10
sort -rn file.txtпо числам, большие наверху
sort -h file.txtпо размерам вида 900M и 2G
sort -u file.txtпо алфавиту и без повторов
sort -t: -k3 -n /etc/passwdпо третьему полю, поля разделены двоеточием: пользователи по номеру UID
sort -o file.txt file.txtотсортировать файл и записать результат в него же

Какие папки занимают больше всего места, покажет sudo du -sh /var/* | sort -h: самые большие окажутся внизу. Подробно о du — Команды df и du.

uniq — убрать и посчитать повторы

uniq сравнивает каждую строку только с соседней. Поэтому сначала строки сортируют: sort ставит одинаковые рядом. В примерах ниже вывод sort передают в uniq, например sort file.txt | uniq -c.

КомандаЧто делает
uniqубрать повторы
uniq -cперед каждой строкой — сколько раз она встретилась
uniq -dтолько строки, которые повторяются
uniq -uтолько строки без повторов
uniq -iне различать заглавные и строчные буквы

Готовые команды для журнала nginx

В журнале nginx первое слово строки — IP посетителя, седьмое — адрес страницы, девятое — код ответа. awk выбирает нужное слово: $1, $7 или $9.

Какие страницы открывают больше всего:

sudo awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

Сколько каких кодов ответа — 200, 404, 500 и других:

sudo awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

Какие адреса отвечают ошибкой 404:

sudo awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

Сколько разных IP заходило:

sudo awk '{print $1}' /var/log/nginx/access.log | sort -u | wc -l

Если в nginx задан свой формат журнала, номера слов будут другими — сверьте их по одной строке журнала: sudo tail -n 1 /var/log/nginx/access.log.

Ошибки и как их исправить

Что видноЧто значитЧто сделать
uniq не убрал повторыодинаковые строки стоят не рядомпоставьте перед ним sort: sort file.txt и затем uniq
10 стоит раньше 9sort сравнивает числа как текстдобавьте -n
после du -sh 2G стоит выше 900Msort не понимает буквы размераиспользуйте sort -h
файл стал пустым после sort file.txt > file.txtзнак > очистил файл раньше, чем sort его прочиталвосстановите файл из копии; в следующий раз — sort -o file.txt file.txt
wc -l показал на одну строку меньшеwc считает переводы строк, а в конце последней строки его нетничего страшного; строк на одну больше
wc -c больше, чем букв в русском тексте-c считает байты, а русская буква занимает два байтаиспользуйте wc -m
порядок строк не такой, как ждалипорядок зависит от языковых настроекдля порядка по кодам символов: LC_ALL=C sort file.txt
Permission denied при чтении журналажурнал доступен не всемдобавьте sudo перед командой, которая читает файл

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026