我有一个由数千个子目录组成的目录树,但我经常需要 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*"