为跨平台查找命令指定扩展正则表达式
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,虽然它是那样的。
在 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,虽然它是那样的。