bash4.1.2(2):如何在for循环中应用regex逆匹配?
我只想遍历不包含字符串“unicredit”的目录。给定此目录列表(位于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
/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