按wc结果分组

时间:2018-04-01 19:01:02

标签: linux unix aggregate

我有一个包含大约100个文件和子目录的目录 我想找到多少行包含字符串' string'在当前目录的每个文件中

我试过了 find . -name '*.h' -exec grep -i 'string' {} +| wc -l

但它总体上显示了我,并没有按文件给我计算。 我想在这里相当于GROUP BY。

谢谢

3 个答案:

答案 0 :(得分:0)

也许wc -l *

或者循环查找带有wc的结果

答案 1 :(得分:0)

也许是这样的:

$ find . -name '*.h' -exec sh -c "echo {}; grep -i 'string' {} | wc -l" \;

或:

$ find . -name '*.h' -print -exec sh -c "grep -i 'string' {} | wc -l" \;

示例输出:

./1.h
2
./10.h
1

答案 2 :(得分:0)

尝试

grep -rc "string" base_directory

这应该在基目录

中的每个目录中的每个文件中计数