首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Find + emacs-regex模式匹配regex子表达式

使用Find + emacs-regex模式匹配regex子表达式
EN

Stack Overflow用户
提问于 2010-10-08 00:15:55
回答 1查看 243关注 0票数 0

我正在尝试找到一些压缩的日志文件,并对它们进行一些操作。我不能使用ls,因为它们在目录中有数千个文件,而BASH抛出了一个‘参数列表太长’的错误。这使我找到了,但我的正则表达式遇到了问题。

下面是整个find命令

代码语言:javascript
运行
复制
find $i -regex '.*logfile_MP[0-9]-GW0[0-9]_2010-09-\(\([7-9]\)|\(1[0-9]\)|\(2[0-3]\)\)-.*' -exec ls {} \;

我实际上需要遍历几个日志目录,所以$i来自于一个BASH循环来遍历所有目录。现在,我只是想列出文件,所以我知道我有正确的文件;一旦我让它工作,我会修改我的-exec语句。

问题与括号部分有关:

代码语言:javascript
运行
复制
\(\([7-9]\)|\(1[0-9]\)|\(2[0-3]\)\)

我正在尝试匹配一个天数范围(7-23)。根据我对Emacs-regex模式的理解,我必须转义所有的括号。正则表达式的其余部分正常工作,因为如果我将括号部分替换为一个数字(例如7),它运行良好。

有人能帮我创建一个匹配7-23的正则表达式吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-08 00:24:23

我认为你走对了路,只是在每个|前面少了一个\

代码语言:javascript
运行
复制
\([7-9]\|1[0-9]\|2[0-3]\)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3883642

复制
相关文章

相似问题

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