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

我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件.我需要在每个文件中得到’Hello’字样的计数,并将结果显示为’File’a’has’Hello’n times’,’File’b”’Hello’m times’等等.我如何在
linux中编写脚本,以便我可以在每个文件中获得单词hello的单词计数.我浏览网后尝试了一些与’wc’的grep组合,但这给了我所有文件夹中所有文件的总计数.

谢谢

最佳答案 尝试这样的事情:

找 . -type f | xargs -n1 grep“你好”-c

添加-type f进行查找可确保它只返回文件,而不是目录.将-n1添加到xargs使得find返回的每个文件都可以自己调用grep,这样就可以获得每个文件的数量. grep的-c参数返回匹配计数而不是每个匹配.

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

点赞