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

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

假设我需要找出每个文件名称中包含“work”一词的文件中有多少个单词。

我知道,要查找名称中带有“work”的文件,可以使用ls work。要找出文件中的单词数,可以使用wc -w

但是我尝试了以下操作,它似乎仅显示文件数,而不是所有文件中单词数的总和(我需要):

ls work | wc -w

因此,如果有 14 个文件的名称中包含“work”,则会显示 14,而不是单词数。

答案1

语法是wc -w [FILE]。如果你不使用FILE而是在输出中使用管道,ls work它只会计算它在stdin上读取的内容。

您需要通过管道传输文本本身:

cat *work* | wc -w

您也可以使用 执行wcfind -exec但请注意,如果文件很多,这可能会显示多个“总计”金额,因为find会多次调用。wc

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

答案2

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

wc -w *work*

答案3

这里有一些不错的答案,但对于这个我喜欢使用:

ls | grep work | xargs wc -w

相关内容