Как мне перечислить количество слов в нескольких файлах?

Скажем, мне нужно узнать, сколько слов в каждом файле содержат слово «работа».

Я знаю, что найти файлы с «работой» было бы ls work. И чтобы выяснить количество слов, это было бы wc -w

Однако я попробовал это, и, похоже, просто отображает количество файлов, а не количество слов, объединенных во всех файлах (которые мне нужны) :

ls work | wc -w

Так, скажем, если есть 14 файлов, которые следуют предварительному условию «работа», будет отображаться 14, а не количество слов.

9
задан 29 September 2013 в 04:55

2 ответа

Синтаксис: 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 {} +
0
ответ дан 29 September 2013 в 04:55

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

wc -w *work*
0
ответ дан 29 September 2013 в 04:55

Другие вопросы по тегам:

Похожие вопросы: