为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用find命令使用正则表达式?

如何使用find命令使用正则表达式?

偶然的你 2019-09-19 09:58:16
我有一些用生成的uuid1字符串命名的图像。例如81397018-b84a-11e0-9d2a-001b77dc0bed.jpg。我想使用“find”命令找出所有这些图像:find . -regex "[a-f0-9\-]\{36\}\.jpg".但它不起作用。正则表达式出了什么问题?有人可以帮我吗?
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

该-regex发现表达式匹配的全名,包括从当前目录的相对路径。为此,find .始终以./任何目录开头。


此外,这些是emacs正则表达式,其具有除通常的egrep正则表达式之外的其他转义规则。


如果这些都直接在当前目录中,那么


find . -regex '\./[a-f0-9\-]\{36\}\.jpg'

应该管用。(我不太确定 - 我无法在这里得到重复的计数。)你可以通过-regextype posix-egrep以下方式切换到egrep表达式:


find . -regextype posix-egrep -regex '\./[a-f0-9\-]{36}\.jpg'

(请注意,这里所说的一切都是针对GNU查找的,我对BSD一无所知,这也是Mac上的默认设置。)


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 952 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信