使用GREP计算短语的出现次数

时间:2012-05-11 16:24:27

标签: unix grep

使用GREP

计算短语的出现次数

我有一个包含大量文件的目录。因此,当我需要查看是否有任何文件包含某个短语时,我会使用

grep 'the phrase' mydir/*

有没有办法计算短语在这些文件中显示的总次数?

我使用了grep 'the phrase' mydir/* --count

但是这会在每个单独的文件中出现,而不是总数,这不是我想要的。

3 个答案:

答案 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 } '