假设我想找到所有.jpg和.png images,使用正则示例,我正在尝试:
find . -regex ".*.(jpg|png)"
但是它不起作用(即使存在JPG和PNG文件,也没有结果)。
现在,如果而不是(jpg|png)
部分I仅使用jpg
或png
,则可以正常工作。另外,如果我使用(jpg)
,它确实会找到.jpg文件,因此显然我必须逃脱括号(不确定为什么)。但是我无法获得" jpg或png"的工作,逃脱了|
符号(因此在我的正则使用(jpg|png)
)也无法正常工作。
fyi:我正在OS X Yosemite上使用find
。
在OSX find
上使用-E
选项,以启用扩展正则表达式:
find -E . -regex ".*.(jpg|png)"
根据man find
:
-E
Interpret regular expressions followed by -regex and -iregex primaries as extended
(modern) regular expressions rather than basic regular expressions (BRE's).