В Linux и Unix-подобных операционных системах команда wc
позволяет подсчитать количество строк, слов, символов и байтов в каждом заданном файле или стандартном вводе и распечатать результат.
В этом руководстве мы покажем вам, как использовать команду wc
на простых и практических примерах.
Содержание
Как использовать команду wc
Синтаксис команды wc
следующий:
wc OPTION... [FILE]...
Команда wc
может принимать ноль или более входных имен FILE
. Если FILE
не указан или если FILE
равен -
, wc
будет читать стандартный ввод. Слово — это строка символов, разделенных пробелом, табуляцией или новой строкой.
В простейшей форме при использовании без каких-либо опций команда wc
выводит четыре столбца, количество строк, слов, количество байтов и имя файла для каждого файла, переданного в качестве аргумента. При использовании стандартного ввода четвертый столбец (имя файла) не отображается.
Например, следующая команда отобразит информацию о виртуальном файле /proc/cpuinfo
:
wc /proc/cpuinfo
Результат будет выглядеть примерно так:
448 3632 22226 /proc/cpuinfo
- 448 — это количество строк.
- 3632 — количество слов.
- 22226 — количество символов.
При использовании стандартного ввода имя файла не отображается:
wc < /proc/cpuinfo
448 3632 22226
Чтобы отобразить информацию о более чем одном файле, передайте имена файлов в качестве аргументов, разделенных пробелом:
wc /proc/cpuinfo /proc/meminfo
Команда предоставит вам информацию о каждом файле и строку, включая общую статистику:
448 3632 22226 /proc/cpuinfo
49 143 1363 /proc/meminfo
497 3775 23589 total
Приведенные ниже параметры позволяют выбрать, какие счетчики будут печататься.
-l
,--lines
— Вывести количество строк.-
-w
,--words
— Вывести количество слов. -
-m
,--chars
— Вывести количество символов. -
-c
,--bytes
— Вывести количество байтов. -
-L
,--max-line-length
— Вывести длину самой длинной строки.
При использовании нескольких параметров счетчики печатаются в следующем порядке: новая строка, слова, символы, байты, максимальная длина строки.
Например, чтобы отобразить только количество слов, которые вы бы использовали:
wc -w /proc/cpuinfo
3632 /proc/cpuinfo
Вот еще один пример, который напечатает количество строк и длину самой длинной строки.
wc -lL /proc/cpuinfo
448 792 /proc/cpuinfo
Параметр --files0-from=F
позволяет wc
читать ввод из файлов, указанных в файле F
именами, завершающимися NUL. Если F
-
то читать имена со стандартного ввода. Например, вы можете искать файлы с помощью команды find
и предоставлять эти файлы в качестве входных данных для wc
:
find /etc -name 'host*' -printf0 | wc -l --files0-from=-
В выводе будет показано количество строк для всех файлов в каталоге /etc
, имена которых начинаются с «host»:
4 /etc/host.conf
27 /etc/avahi/hosts
1 /etc/hostname
14 /etc/hosts
46 total
Подсчитайте количество строк
Команда wc
в основном используется с параметром -l
для подсчета только количества строк в текстовом файле. Например, чтобы подсчитать количество строк в /etc/passwd
вы должны ввести:
wc -l /etc/passwd
В первом столбце указано количество строк, а во втором — имя файла:
44 /etc/passwd
Подсчитайте количество слов
Чтобы подсчитать только количество слов в текстовом файле, используйте wc -w
за которым следует имя файла. В следующем примере подсчитывается количество слов в файле ~/Documents/file.txt
:
wc -l /etc/passwd
Количество слов показано в первом столбце:
513 /home/linuxize/Documents/file.txt
Примеры команд Wc
wc
можно использовать в сочетании с другими командами через конвейер. Вот несколько примеров.
Подсчет файлов в текущем каталоге
Команда find
передает список всех файлов в текущем каталоге с каждым именем файла в одной строке команде wc
, которая подсчитывает количество строк и выводит результат:
find . -type f | wc -l
Подсчитайте количество пользователей
В приведенном ниже примере wc
используется для подсчета количества строк в выводе команды getent
.
getent passwd | wc -l
Выводы
Команда wc
означает «подсчет слов» и имеет довольно простой синтаксис. Он позволяет подсчитывать количество строк, слов, байтов и символов в одном или нескольких текстовых файлах.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.