首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash 4.1.2(2):如何在for循环中应用正则表达式反向匹配?

bash 4.1.2(2):如何在for循环中应用正则表达式反向匹配?
EN

Stack Overflow用户
提问于 2020-04-19 21:46:29
回答 1查看 32关注 0票数 1

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

代码语言:javascript
复制
par_q
swx_i
swx_r
unicreditucispa_ams_b
unicreditucispa_ams_m
unicreditucispa_ber_b

我启动了以下一行代码:

代码语言:javascript
复制
for i in /tmp/scripts/bash/test/^((?!unicredit*).)*$; do echo FOUND $i; done

并期望得到以下输出:

代码语言:javascript
复制
FOUND par_q
FOUND swx_i
FOUND swx_r

但得到的却是这个错误:

代码语言:javascript
复制
-bash: syntax error near unexpected token `('

我尝试用\转义一些/所有括号,还尝试用引号将正则表达式括起来,但没有解决问题。

我应该做什么修改才能得到我想要的输出?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-19 21:54:06

我建议:

代码语言:javascript
复制
shopt -s extglob # enable extglob
for i in /tmp/scripts/bash/test/!(*unicredit*); do echo "FOUND $i"; done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61305366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档