Гид по технологиям

Команда wc в Linux: подсчёт строк, слов и байтов

5 min read Linux Обновлено 24 Dec 2025
Команда wc в Linux: подсчёт строк, слов и байтов
Команда wc в Linux: подсчёт строк, слов и байтов

Окно терминала Ubuntu с приглашением командной строки

Если нужно быстро узнать число строк, слов, символов или байтов в файле — используйте wc. Команда проста, работает локально и в сочетании с пайпами. Учтите разницу между байтами и символами при работе с юникодом и выбирайте опции -l, -w, -m, -c, -L в зависимости от цели.

Что такое команда wc

Команда wc расшифровывается как «word count» и входит в набор стандартных утилит Unix/Linux. Это простая программа для подсчёта строк, слов, символов и байтов в потоке ввода или файле. Она присутствует по умолчанию во всех популярных дистрибутивах, поэтому ничего устанавливать не нужно.

Краткое определение: wc — утилита командной строки для подсчёта строк, слов, символов и байтов в тексте.

Основной синтаксис

wc [ОПЦИЯ] [ФАЙЛ]

Для справки используйте встроенную страницу руководства:

man wc

Важно: большинство примеров ниже используют термин UTF-8. При других локалях поведение счётчика символов может отличаться.

Пример: файл zen.txt

Создайте файл zen.txt и вставьте туда «Дзен Python», как в примере ниже. Если вы создаёте файл через cat, оставьте пустую строку перед вставкой.

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.[a]
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.[b]
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let's do more of those!

Это классический пример текста для демонстрации команды wc.

Базовый вывод wc

По умолчанию wc выводит три числовых поля и имя файла: количество строк, слов и байтов.

wc zen.txt

Пример вывода:

19 137 824 zen.txt

Пояснение: первые три числа — строки, слова, байты, затем имя файла.

Полезные опции

  • -l, –lines — вывести только число строк
  • -w, –words — вывести только число слов
  • -c, –bytes — вывести только число байтов
  • -m, –chars — вывести только число символов (unicode-aware при поддержке локали)
  • -L, –max-line-length — длина самой длинной строки в символах

Примеры:

wc -l zen.txt
19 zen.txt
wc -w zen.txt
137 zen.txt
wc -c zen.txt
824 zen.txt
wc -m zen.txt
818 zen.txt
wc -L zen.txt
67 zen.txt

Замечание: в этом файле число байтов (824) и число символов (818) отличаются из‑за символов, представленных многобайтово в UTF-8 или специальных HTML-сущностей в тексте. Всегда выбирайте -m для подсчёта видимых символов и -c для точного размера в байтах.

Несколько файлов одновременно

wc можно запускать над несколькими файлами — она выведет отдельные строки для каждого и итоговую сумму второй командой total.

wc zen.txt letters.txt num.txt

Пример вывода:

19 137 824 zen.txt
26 26 52 letters.txt
10 10 21 num.txt
55 173 897 total

Последняя строка содержит суммарные значения для всех перечисленных файлов.

Использование wc с другими командами (пайпы)

wc часто применяют в конвейере команд, чтобы быстро получить числовую метрику от вывода другой утилиты.

Сосчитать количество элементов на Рабочем столе (без скрытых файлов):

ls Desktop | wc -l

Сосчитать количество процессов в текущем сеансе (включая заголовки, если они есть):

ps | wc -l

Не забудьте, что ls по умолчанию сортирует и может изменять формат вывода; для точного подсчёта файлов в директории лучше использовать find:

find . -maxdepth 1 -type f | wc -l

Это посчитает обычные файлы в текущей директории, включая скрытые при использовании соответствующих опций.

Когда wc может давать неожиданные результаты

Важно

  • Разница между байтами и символами: при использовании кодировки UTF-8 один визуальный символ может занимать несколько байтов. Для подсчёта символов используйте -m, для подсчёта размера файла в байтах — -c.
  • Счёт слов определяется разделителями пробел, табуляция и перевод строки. Сложные определения слов, содержимое с пунктуацией или связки символов могут изменить результат.
  • Подсчёт файлов через ls небезопасен в именах с переводами строки или пробелами. Для надёжности используйте find.

Примеры неудач:

  • Файлы с непечатными символами или управляющими последовательностями могут исказить подсчёт строк.
  • Если требуется учесть только уникальные слова или слова с учётом регистра, wc не подойдёт — используйте awk, sort и uniq.

Альтернативы и комбинации

  • awk ‘{print NR}’ файл — можно вывести номера строк или пользоваться awk для сложной фильтрации и подсчётов по шаблону.
  • grep -c ‘паттерн’ файл — считает строки, содержащие шаблон.
  • sed -n ‘$=’ файл — быстрый способ получить число строк.
  • find . -type f | wc -l — надёжный подсчёт файлов в дереве с учётом вложенных директорий.

Быстрая методология проверки результатов (мини‑план)

  1. Определите, что хотите посчитать: строки, слова, символы или байты.
  2. Убедитесь в локали: echo $LANG или locale. Для корректного подсчёта символов нужна UTF-8 локаль.
  3. Выберите флаг: -l, -w, -m или -c.
  4. Для подсчёта файлов используйте find вместо ls при наличии пробелов и специальных символов в именах.
  5. Проверьте результаты на небольших контрольных файлах.

Шпаргалка — быстрый чеклист

  • Подсчитать строки: wc -l файл
  • Подсчитать слова: wc -w файл
  • Подсчитать символы: wc -m файл
  • Подсчитать байты: wc -c файл
  • Длина самой длинной строки: wc -L файл
  • Сосчитать файлы в каталоге: find путь -type f | wc -l

Критерии приёмки (пример теста)

  • Для входного файла test.txt с известными 10 строками команда wc -l test.txt должна вернуть 10.
  • Для файла с UTF-8 символами команда wc -m возвращает количество видимых символов, а wc -c — размер в байтах.
  • При подсчёте файлов через find все именованные файлы учитываются, символические ссылки учитываются при использовании -type f без дополнительных опций.

Когда использовать wc, а когда нет

Используйте wc, если нужно быстро получить простую метрику локального текста. Не используйте wc, если требуются:

  • подсчёты уникальных слов, частотный анализ или игнорирование регистра — используйте awk/sort/uniq;
  • точная аналитика по токенам в сложных языках — применяйте специализированные библиотеки для NLP;
  • подсчёт размера на диске с учётом блоков — используйте du.

Короткий глоссарий

  • слово — последовательность символов, разделённая пробелом, табуляцией или переводом строки
  • байт — единица хранения данных, 8 бит
  • символ — визуальный юникод‑кодпойнт
  • локаль — настройка окружения, определяющая кодировку и правила классификации символов

Часто задаваемые вопросы

Как отличить байты от символов

Используйте -c для байтов и -m для символов. В UTF-8 один символ может занимать несколько байтов.

Можно ли посчитать только непустые строки

Да. Пример:

grep -cve '^\s*$' файл

Как посчитать файлы рекурсивно

find /путь -type f | wc -l

Можно ли подсчитать слова в выводе другой команды

Да. Пример:

ps aux | wc -w

Итог

wc — простая и полезная утилита для быстрой проверки объёма текста: строк, слов, символов и байтов. Помните о различии между байтами и символами и используйте find вместо ls для безопасного подсчёта файлов. Для более сложной аналитики комбинируйте wc с awk, grep, sed и другими стандартными инструментами.

Сводка

  • wc подходит для быстрых метрик текста и файлов
  • Используйте -m для символов, -c для байтов
  • Для подсчёта файлов предпочтительнее find | wc -l
  • При необходимости сложной фильтрации применяйте awk/grep/uniq
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Подгонка цвета в Adobe Premiere Pro — руководство
Видео

Подгонка цвета в Adobe Premiere Pro — руководство

Исправить «Обнаружено перекрытие экрана» на Android
Android.

Исправить «Обнаружено перекрытие экрана» на Android

Как открыть режим «Инкогнито» в Google Chrome
Браузеры

Как открыть режим «Инкогнито» в Google Chrome

Установка Docker Compose на Linux
DevOps

Установка Docker Compose на Linux

Установка KDE Plasma в Linux Mint
Linux

Установка KDE Plasma в Linux Mint

Рамка для фото в Photoshop — быстро и просто
Photoshop

Рамка для фото в Photoshop — быстро и просто