如何使用文件名的开头和结尾过滤 FIND -E . REGEX?

如何使用文件名的开头和结尾过滤 FIND -E . REGEX?

我目前正在使用此命令来获取文件列表:

find -E . -regex '.*\.(jpg|jpeg|png|gif|pdf)'

使用该命令,我将获得以下列表:

现在 :

documentA.pdf
documentB.jpeg
001documentC.png
...

我的目的是过滤这个列表,所以我只会得到以 3 个整数开头并以之前设置的扩展名结尾的文件。

目标 :

001documentC.png

我该如何调整命令find -E . -regex以获得这样的行为?我创建了一个正则表达式字符串:([0-9][0-9][0-9]).*\.(jpg|jpeg|png|gif|pdf),在regexPal.com但我无法让它与 find 命令一起工作。

答案1

找到完美的解决方案得益于这个 stackoverflow 问题

find -E . -iregex '.*/*\.(jpg|png|eps|gif)'

测试 :

$ touch documentA.pdf documentB.jpeg 001documentC.png 0documentD.eps 0000documentE.pdf
$ find -E . -iregex '.*/[0-9]{3}.*\.(jpg|png|eps|gif)'

./001documentC.png

相关内容