regex - 查找使用带有替代方法的正则表达式
问题描述
我尝试使用find
以匹配中间由某些数字表示的几个替代文件模式,但它返回一个空列表。我的实际模式在中间有一个固定的开头和可变的数字。
可重现的例子。创建文件列表
touch a10a a24b b12c a45d
使用以下正则表达式从列表中选择a10a
并a24b
导致空输出
find . -regex '.*/a(10|45).*'
我希望这个问题应该很容易解决,但我找不到解决方案,也无法弄清楚。我错过了什么?
系统:ubuntu 16.04
解决方案
这个想法是正确的,但是您需要输入要使用的正则表达式 for find
。由于您在这里有备用运算符|
,因此您需要启用 ERE(扩展正则表达式)支持,您可以执行以下操作。-regextype
允许您指定需求所需的正则表达式风格。/
如果您启用了贪婪匹配,该部分也是可选的.*
find . -type f -regextype posix-extended -regex '.*/a(10|45).*'
从我的 GNU findutils 版本中,您可以从man
页面中看到
-regextype type
更改稍后在命令行上发生的测试
-regex
和理解的正则表达式语法。-iregex
当前实现的类型是emacs
(这是默认的)posix-awk
、、、posix-basic
和。posix-egrep
posix-extended
推荐阅读
- c# - 使用 ASP-for 在 ASP.net MVC 中发布
- java - 在java中调整图像大小
- r - 展开循环会产生不同的行为
- ansible - Ansible如何提取字符串的一部分?
- java - OAuth2授权码流程:spring-security不接受下发的access_token
- visual-studio-code - 没有沙箱的运行时参数
- javascript - JavaScript – ResizeObserver() 在页面加载时没有始终如一地执行函数
- r - 如何在 R 中搜索 Knoema 数据集的 ID 代码和输入
- r - 如何从数据框列表中将多个文件另存为 .txt
- python - 元素改变类硒