grep 仅匹配模式的子目录

Joh*_*ing 10 grep

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

例如,假设我有这些我想要 grep 的子目录:

...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...
Run Code Online (Sandbox Code Playgroud)

...上述条目代表的成千上万的其他目录,我的希望到grep英寸

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

grep -n --recursive bar *
Run Code Online (Sandbox Code Playgroud)

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

Rah*_*til 14

您可以使用 grep 并找到如下组合:

find /{foo,fooLib,fooHandler,fooGizmo} -type f -exec grep -l "test" {} \;
Run Code Online (Sandbox Code Playgroud)

或者你可以使用

find /foo* -type f -exec grep -l "test" {} \;
Run Code Online (Sandbox Code Playgroud)

或者只使用 grep

grep -R "test" /foo*
Run Code Online (Sandbox Code Playgroud)