2015-05-26 1 views
0

В Ubuntu, чтобы иметь возможность использовать расширенное регулярное выражение во время find, вы можете указать флаг -regextype, но в OSX ему нужен флаг -E. Есть ли переносимый способ сделать следующее?Укажите расширенное регулярное выражение для команды поиска кросс-платформы

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

+0

Нет, вы не можете создать команду find с расширенной поддержкой регулярных выражений, которая работает как для OSX, так и для Ubuntu. - Однако вы можете создать псевдоним в обоих файлах .bashrc и создать единообразную команду find, но это вряд ли будет переноситься на новую машину, не создавая сначала новый псевдоним. – ShellFish

ответ

0

Это не совсем идеально, но вы могли бы сделать что-то вроде

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 

Обратите внимание, что это будет просто считать Linux, если это не OS X, и я думаю, что вам нужно проверить для немного отличающаяся строка, то «Дарвин» на OS X, хотя это что-то вроде этого.

+0

Хотя синтаксис для поиска был немного неправильным, это работает хорошо. Благодаря! – hatch

Смежные вопросы