Regex grep排除当前目录或子目录中的目录

Regex grep排除当前目录或子目录中的目录,regex,bash,grep,Regex,Bash,Grep,我正在尝试设置我的GREP\u选项以始终排除某些目录(例如target/classes)。我特别想让它为递归greps工作。当当前目录包含target/classes时,使用--exclude dir=target/classes效果很好,但当我在父目录中时就不是这样了。我当前的解决方案要求我同时设置--exclude dir=target/classes和--exclude dir=*/target/classes。我正在寻找一个更直接的解决方案,我认为这将涉及一个正则表达式。我尝试了--ex

我正在尝试设置我的
GREP\u选项
以始终排除某些目录(例如
target/classes
)。我特别想让它为递归greps工作。当当前目录包含
target/classes
时,使用
--exclude dir=target/classes
效果很好,但当我在父目录中时就不是这样了。我当前的解决方案要求我同时设置
--exclude dir=target/classes
--exclude dir=*/target/classes
。我正在寻找一个更直接的解决方案,我认为这将涉及一个正则表达式。我尝试了
--exclude dir=(*/)?target/classes
和其他排列,但无法使其工作


是的,是的,我确信这可以通过其他工具(如find、awk等)实现,但我真的希望(如果可能的话)仅限于
GREP_选项解决方案。

这里是一个经过测试的工作示例,注意语法,不要输入错误:

root/dspace# grep -r --exclude-dir={log,assetstore} "creativecommons.org"
上面我在当前目录“dspace”中搜索文本“creativecommons.org”,并排除dir{log,assetstore}


完成。

这里是一个测试过的工作示例,请小心语法,不要输入错误:

root/dspace# grep -r --exclude-dir={log,assetstore} "creativecommons.org"
上面我在当前目录“dspace”中搜索文本“creativecommons.org”,并排除dir{log,assetstore}


完成。

grep的信息页面似乎表明
--exclude dir
的参数是
GLOB
。Globs不能这样做。grep的信息页面似乎表明
--exclude dir
的参数是
GLOB
。地球仪不能这么做。