在所有文件中获取单词计数



我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件。我需要在每个文件中获取" hello"一词的数量,并将结果显示为" file" a" hello" h hello'n times','file'b's hello'hello'm times'等等。如何在Linux中编写脚本,以便可以在每个文件中的每个文件中获取单词hello的单词。通过NET浏览后,我尝试了一些GREP组合,但这给了我所有文件夹中所有文件的总数。

谢谢

尝试这样的东西:

find . -type f | xargs -n1 grep "Hello" -c

-type f添加到find中确保它仅返回文件,而不是目录。将-n1添加到xargs中,因此find返回的每个文件都会获得grep的调用,以便您可以获得每文件计数。-cgrep参数返回匹配项而不是每场比赛的计数。

上面的表达式将计算其中包含" Hello"的线的数量。如果您需要Hellos的总数,而不仅仅是在其中打招呼的线路数,则需要做一些更复杂的事情。您可以在GREP上使用-o选项来打印行的匹配部分,然后将其与wc -l结合以获取总出现的数量。

使用grep语法为:

grep -Rc "Hello" your_dir/

我也建议ack作为grep的绝佳替代品:

ack -lc "Hello" your_dir/

相关内容

  • 没有找到相关文章

最新更新