bash4.1.2(2):如何在for循环中应用regex逆匹配?

bash4.1.2(2):如何在for循环中应用regex逆匹配?,bash,for-loop,glob,inverse-match,Bash,For Loop,Glob,Inverse Match,我只想遍历不包含字符串“unicredit”的目录。给定此目录列表(位于/tmp/scripts/bash/test/): 我发射了以下一艘邮轮: for i in /tmp/scripts/bash/test/^((?!unicredit*).)*$; do echo FOUND $i; done 并预期有以下产出: FOUND par_q FOUND swx_i FOUND swx_r 但却出现了这样的错误: -bash: syntax error near unexpected tok

我只想遍历不包含字符串“unicredit”的目录。给定此目录列表(位于
/tmp/scripts/bash/test/
):

我发射了以下一艘邮轮:

for i in /tmp/scripts/bash/test/^((?!unicredit*).)*$; do echo FOUND $i; done
并预期有以下产出:

FOUND par_q
FOUND swx_i
FOUND swx_r
但却出现了这样的错误:

-bash: syntax error near unexpected token `('
我试图用
\
转义一些/所有括号,还试图用引号括住正则表达式,但没有解决问题

为了得到我想要的结果,我应该做哪些修改

谢谢。

我建议:

shopt -s extglob # enable extglob
for i in /tmp/scripts/bash/test/!(*unicredit*); do echo "FOUND $i"; done
shopt -s extglob # enable extglob
for i in /tmp/scripts/bash/test/!(*unicredit*); do echo "FOUND $i"; done