如何列出多个文件中的字数?


9

说我需要找出每个文件中有多少个单词包含“工作”一词。

我知道要查找其中包含“工作”的文件,那就是ls work。并找出单词的数量wc -w

但是我尝试了这一点,它似乎只是显示文件数,而不是显示所有文件中组合的单词数(我需要):

ls work | wc -w

假设如果有14个文件紧随“工作”要求,它将显示14,而不是字数。

Answers:


17

语法为wc -w [FILE]。如果您不使用FILE,但通过管道将其输出ls work仅计算在stdin上读取的内容。

您需要管道输入文本本身:

cat *work* | wc -w

您可以wc使用替代执行find -exec。但是请注意,如果有很多文件,这可能会显示多个“总计”总和,这将导致多次find调用wc

find ./ -type f -name "*work*" -exec wc -w {} +

我使用该find命令还能够通过使用来总结行数wc -l。惊人!
cody.codes

3

您可以运行wc多个文件,然后使用内置的Shell外壳,*该外壳将工作目录中的每个非隐藏文件添加到wc的参数中。

wc -w *work*

如果一个目录的名称包含work那么这将显示与error..a黑客沿输出将重定向STDERR 2>/dev/null..although你应该使用类似find,仅保留文件..
heemayl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.