如何递归地使用grep并忽略子目录的子目录?

3
我已经熟悉了 grep -r "searchTerm" .,也熟悉了 grep -r "searchTerm" exclude={subdir1, subdir2} . 但是,我正在寻找一种递归搜索的方法,可以在子目录中搜索并忽略某些子目录的子目录。
例如,如果目录结构如下:
/folder
   /subdir1
      /idc/file.js
      /files/file.js
      /otherStuffIdc/file.js
   /subdir2
      /idc/file2.js
      /files/file2.js
      /otherStuffIdc/file2.js
...

我如何排除idc和otherStuffIdc,因为这些文件夹是我开始搜索的根目录的子目录的子目录?

我的例子很简单,但在我的实际问题中,有许多许多个subDir#,所以逐个grep每个子目录是不可行的。


你想要从搜索中排除 idc 及其所有子目录吗? - iamauser
是的!没错。我想要排除 idcotherStuffIdc - Steve
grep -r pattern --exclude-dir=idc,这个没用吗? - iamauser
这个可行,之前肯定是我把它搞糟了。感谢@iamauser。 - Steve
2个回答

3
这将排除名称为idcotherStuffIdc的(子)目录。
 grep -r pattern --exclude-dir=idc,otherStuffIdc

1
对我而言,只有在(子)文件夹周围加上花括号时才有效。
grep -r pattern --exclude-dir={idc,otherStuffIdc}

那是在哪个操作系统上? - Déjà vu
Ubuntu 18.04。:) - Sofía
我刚刚尝试了一下不带花括号的方式,但是它没有起作用...很奇怪。 - Sofía

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接