我在 OS X 终端中使用以下正则表达式查找命令来查找具有 8 位文件名后跟 .jpg、.gif、.png 或 .eps 扩展名的全部文件。即使我告诉 OS X/BSD find 使用现代正则表达式,以下命令也不会产生任何结果
find -E ./ -iregex '\d{8}'
使用 http://rubular.com/ (http://rubular.com/r/YMz3J8Qlgh) 显示正则表达式模式产生了预期的结果,OS X 在键入时产生了结果
find . -iname '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].*'
但这似乎有点啰嗦。
最佳答案
这些命令适用于 OSX
find -E . -iregex '.*/[0-9]{8}\.(jpg|png|eps|gif)'
此命令匹配 12345678.jpg ,而不是 123456789.jpg
find -E . -iregex '.*/[0-9]{8,}\.(jpg|png|eps|gif)'
此命令匹配 12345678.jpg 和 123456789.jpg
.*/
等于文件夹路径或子文件夹路径
关于regex - OS X 在带有正则表达式数字的 bash 中查找\d 未产生预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843828/