grep期间GLOB中的逻辑OR - 包含/ - 排除

时间:2015-06-02 14:30:50

标签: bash grep

在Ubuntu终端中,我希望grep所有包含(或不包括)扩展名.foo.bar的文件用于短语'foobar'

我已阅读this advice创建了一个带有逻辑的GLOB,并尝试了几种组合,但似乎都没有效果:

rgrep "foobar" --include "*.foo|*.bar"
rgrep "foobar" --include "*.{foo,bar}"
rgrep "foobar" --exclude "(*.foo|*.bar)"

秘方是什么?

1 个答案:

答案 0 :(得分:4)

您可以在此处使用extglob模式:

shopt -s extglob
grep 'foobar' *.@(foo|bar)

对于--include使用递归grep ,您必须仅使用 GLOB 模式:

grep -R 'foobar' --include=*.{foo,bar} .