使用GREP
计算短语的出现次数我有一个包含大量文件的目录。因此,当我需要查看是否有任何文件包含某个短语时,我会使用
grep 'the phrase' mydir/*
有没有办法计算短语在这些文件中显示的总次数?
我使用了grep 'the phrase' mydir/* --count
但是这会在每个单独的文件中出现,而不是总数,这不是我想要的。
答案 0 :(得分:5)
这应该这样做:
find mydir -print0 | xargs -0 grep 'the phrase' | wc -l
find mydir -print0
- 找到mydirectory中的所有文件并将其打印为空终止行)
xargs -0
- 转换空终止行的流并将它们转换为引用分隔的参数,例如“mydir / file 1”“mydir / file 2”......这些现在可以传递到grep的arument列表中。
wc -l
- 计算行数
null终止行业务与解决其中包含空格的文件有关,因为否则这些看起来像grep的多个参数。
答案 1 :(得分:1)
它比前两个回复更简单:
grep 'the phrase' mydir/* | wc -l
然后将匹配“mydir / *”的所有文件中的grep输出发送到wc -l。
答案 2 :(得分:0)
grep 'the phrase' mydir/* --count | awk 'BEGIN { FS=":"; sum=0;} { sum = sum + $2; } END { print sum } '