假设我的目录中有以下两个文件
- test.yaml
- test.yml
在Ubuntu上,以下bash命令列出了两个文件:
$ find . -regex '.*\.ya?ml'
./test.yaml
./test.yml
但是,在OS X上,相同的命令不会列出任何文件:
$ find . -regex '.*\.ya?ml'
我的问题是,可以传递给-regex
param的正则表达式模式是什么,因此该命令可以在两个平台上运行?
答案 0 :(得分:3)
find
需要-E
来支持扩展正则表达式。在OSX上将起作用:
find -E . -regex '.*\.ya?ml'
以下内容也适用于OSX,无需扩展正则表达式:
find . -regex '.*\.ya\{0,1\}ml'
编辑:如果您希望两个系统都使用通用find
,请使用:
find . -regex '.*\.ya*ml'