【发布时间】:2012-10-18 05:27:10
【问题描述】:
我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件。我需要在每个文件中获取单词'Hello'的计数并将结果显示为'文件'a'有'Hello'n次','文件'b'有'Hello'm次'等等.我如何在 linux 中编写脚本,以便我可以在每个文件中获取单词 hello 的字数。浏览 net 后,我尝试了一些与 'wc' 的 grep 组合,但这给了我所有文件夹中所有文件的总数。
谢谢
【问题讨论】:
我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件。我需要在每个文件中获取单词'Hello'的计数并将结果显示为'文件'a'有'Hello'n次','文件'b'有'Hello'm次'等等.我如何在 linux 中编写脚本,以便我可以在每个文件中获取单词 hello 的字数。浏览 net 后,我尝试了一些与 'wc' 的 grep 组合,但这给了我所有文件夹中所有文件的总数。
谢谢
【问题讨论】:
试试这样的:
find . -type f | xargs -n1 grep "Hello" -c
将-type f 添加到find 可确保它只返回文件,而不是目录。将-n1 添加到xargs 可以使find 返回的每个文件都有自己的grep 调用,这样您就可以获得每个文件的计数。 grep 的 -c 参数返回匹配的计数,而不是每个匹配。
上面的表达式将计算其中包含“Hello”的行数。如果您需要 Hello 的总数,而不仅仅是其中包含 Hello 的行数,您需要做一些更复杂的事情。您可以使用 grep 上的 -o 选项仅打印一行的匹配部分,然后将其与 wc -l 结合以获得总出现次数。
【讨论】:
【讨论】: