Скажем, мне нужно узнать, сколько слов в каждом файле содержат слово «работа».
Я знаю, что найти файлы с «работой» было бы ls work
. И чтобы выяснить количество слов, это было бы wc -w
Однако я попробовал это, и, похоже, просто отображает количество файлов, а не количество слов, объединенных во всех файлах (которые мне нужны) :
ls work | wc -w
Так, скажем, если есть 14 файлов, которые следуют предварительному условию «работа», будет отображаться 14, а не количество слов.
Синтаксис: wc -w [FILE]
. Если вы не используете FILE, а pipe в выводе ls work
, он будет считать только то, что будет читать на stdin.
Вам нужно передать сам текст:
cat *work* | wc -w
Альтернатива, которую вы можете выполнить wc
с помощью find -exec
. Но имейте в виду, что это может показать несколько «итоговых» сумм, так как find
будет вызывать wc
несколько раз, если файлов много.
find ./ -type f -name "*work*" -exec wc -w {} +
Вы можете запустить wc
с несколькими файлами, а затем использовать встроенную оболочку *
, которая добавляет все не скрытые файлы в рабочем каталоге к параметрам wc
.
wc -w *work*