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

我有一些用生成的uuid1字符串命名的图像。例如81397018-b84a-11e0-9d2a-001b77dc0bed.jpg。我想使用“find”命令找出所有这些图像:


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

但它不起作用。正则表达式出了什么问题?有人可以帮我吗?


偶然的你
浏览 1135回答 3
3回答

BIG阳

该-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上的默认设置。)
打开App,查看更多内容
随时随地看视频慕课网APP