在 Mac OS X 上查找的语法

hek*_*ran 6 linux unix find syntax macos

我有一个包含源代码和源代码子目录的项目目录。我想使用 Unix 程序find递归搜索某些扩展名的文件名。findLinux 和 Mac OS X 上的版本表现不同。

# Works in Linux
find . -type f -regex ".*\.\(py\|html\)$"

# Neither of these works in Mac OS X
find . -type f -regex ".*\.\(py\|html\)$"
find . -type f -regex ".*\.(py|html)$"
Run Code Online (Sandbox Code Playgroud)

我如何编写此命令以便它可以在 Mac OS X 上运行(希望也可以在 Linux 上运行)?

Zor*_*che 9

Mac OS X 使用 BSD find并且大多数 Linux 发行版都带有 GNU find。我相信您可以将 GNU findutils 安装到 Mac OS X 上。我手头没有 Mac,但我确信它在MacPorts中可用。

查看 BSD find 手册页,我可以做出一个疯狂的猜测,并建议您尝试查看-E启用现代正则表达式库的选项。