繁体   English   中英

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

[英]get count of the word in all files

我有一个目录树,其中有一堆文件夹和子文件夹,在那些子文件夹中有一堆文件。 我需要获取每个文件中的“ Hello”一词的计数,并将结果显示为“文件'a'具有'Hello'n次”,'文件'b'具有'Hello'm次',依此类推。 我如何在Linux中编写脚本,以便可以在每个这些文件中获得单词hello的单词计数。 在通过net浏览后,我尝试了一些与'wc'的grep组合,但这给了我所有文件夹中所有文件的总数。

谢谢

尝试这样的事情:

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

添加-type f find可确保它仅返回文件,而不返回目录。 xargs添加-n1可以使find返回的每个文件都具有自己的grep调用,以便可以获取每个文件的计数。 grep-c参数返回匹配计数,而不是每个匹配。

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

使用grep的语法是:

grep -Rc "Hello" your_dir/

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

ack -lc "Hello" your_dir/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM