正则表达式 – 如何循环遍历unix shell脚本中与正则表达式匹配的
发布时间:2020-12-14 05:56:17 所属栏目:百科 来源:网络整理
导读:我希望能够循环遍历与特定模式匹配的文件列表.我可以让unix使用带有正则表达式的ls和egrep列出这些文件,但我找不到将其转换为迭代过程的方法.我怀疑使用ls不是答案.我们将非常感激地提供任何帮助. 我当前的ls命令如下所示: ls | egrep -i 'MYFILE[0-9][0-9]
我希望能够循环遍历与特定模式匹配的文件列表.我可以让unix使用带有正则表达式的ls和egrep列出这些文件,但我找不到将其转换为迭代过程的方法.我怀疑使用ls不是答案.我们将非常感激地提供任何帮助.
我当前的ls命令如下所示: ls | egrep -i 'MYFILE[0-9][0-9]([0][1-9]|1[0-2])([0][1-9]|[12][0-9]|[3][01]).dat' 我希望上面的内容匹配: > MYFILE160418.dat 但不是: > MYOTHERFILE150202.DAT 谢谢, 保罗. 解决方法
您可以使用(GNU)find与正则表达式搜索选项,而不是解析ls.
find . -regextype "egrep" -iregex '.*/MYFILE[0-9][0-9]([0][1-9]|1[0-2])([0][1-9]|[12][0-9]|[3][01]).dat' -exec [[whatever you want to do]] {} ; 其中[[您想要做什么]]是您要对文件名称执行的命令. 从手册页
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |