我目前正在使用此命令来获取文件列表:
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