为跨平台查找命令指定扩展正则表达式

Specify extended regex for cross platform find command

在 Ubuntu 中,为了能够在 find 期间使用扩展正则表达式,您可以指定 -regextype 标志,但在 OSX 中,它需要 -E 旗帜。是否有可移植的方式来执行以下操作?

find app -type f -regextype posix-extended -regex '.+\.(handlebars|partial)'

它一点也不理想,但你可以这样做

platform=`uname`
if [$platform='Darwin']; then
    find app -type f -E posix-extended -regex '.+\.(handlebars|partial)'
else
    find app -type f -regextype posix-extended -regex '.+\.(handlebars|partial)'
fi

请注意,如果它不是 OS X,这将只假设 linux,我认为您需要检查一个略有不同的字符串然后 'Darwin' on OS X,虽然它是那样的。