1

用 GREP 计算一个短语的出现次数

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

grep 'the phrase' mydir/*

有什么方法可以计算该短语在这些文件中出现的总次数?

我用过grep 'the phrase' mydir/* --count

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

4

3 回答 3

5

这应该这样做:

find mydir -print0 | xargs -0 grep 'the phrase' | wc -l

find mydir -print0- 查找 mydirectory 中的所有文件并将它们打印为空终止行)

xargs -0- 转换空终止行的流并将它们转换为引号分隔的参数,例如“mydir/file 1”“mydir/file 2”......现在可以将这些传递到 grep 的参数列表中。

wc -l- 计算行数

空终止行业务与处理其中包含空格的文件有关,否则这些可能看起来像 grep 的多个参数。

于 2012-05-11T16:28:45.417 回答
1

它甚至比前两个响应更简单:

grep 'the phrase' mydir/* | wc -l

然后将所有匹配“mydir/*”的文件的 grep 输出发送到 wc -l。

于 2012-05-31T20:00:30.767 回答
0
grep 'the phrase' mydir/* --count | awk 'BEGIN { FS=":"; sum=0;} { sum = sum + $2; } END { print sum } '
于 2012-05-11T16:31:16.497 回答