grep 仅匹配模式的子目录

grep 仅匹配模式的子目录

我有一个由数千个子目录组成的目录树,但我经常需要 grep 仅这些目录的一小部分。我怎样才能grep只匹配模式的子目录?

例如,假设我有这些子目录,我想在其中执行 grep 操作:

...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...

上面的条目...代表了我的数千个其他目录想要 grep 进来。

假设我正在寻找 的所有实例bar,如果我这样做:

grep -n --recursive bar *

我会在所有目录中找到我要找的东西。如何仅搜索与模式匹配的子目录foo*

答案1

您可以使用 grep 并查找组合,如下所示:

find /{foo,fooLib,fooHandler,fooGizmo} -type f -exec grep -l "test" {} \;

或者你可以使用

find /foo* -type f -exec grep -l "test" {} \;

或者仅使用 grep

grep -R "test" /foo*

答案2

尝试grep foo* <other parts>例如:grep foo* -name "book*"

相关内容