У меня есть coreutils, но я не уверен, есть ли GNU grep. Я просто хочу использовать флаг -P
для регулярного выражения Perl, который находится в GNU grep, но не в BSD grep.
У меня PATH, /usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/masi/.cabal/bin
поэтому у меня сначала есть coreutils в PATH.
Однако grep - это BSD, когда я его использую: grep --version
дает grep (BSD grep) 2.5.1-FreeBSD
.
Команда type -p grep
возвращается/usr/bin/grep
Как вы можете установить GNU Grep в OSX?
grep
по-прежнему FreeBSD, ноegrep
иfgrep
GNU. Как я могу установить значениеgrep
по умолчанию для GNU? (Я использовал--with-default-names
)ggrep
brew uninstall grep
(илиbrew remove grep
), если он уже установлен, иbrew install grep --with-default-names
укажитеgrep
приоритет GNU в командной строке. Протестировано сHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
Не забудьте открыть новую оболочку или запуститьhash -r
илиexport PATH=$PATH
перезагрузить пути к бинарным приложениям (т.е. ваш новый GNU grep).Как отмечается в комментариях, ответ с наивысшей оценкой (от nohillside) необходимо обновить следующим образом:
Если grep уже был установлен brew, сначала удалите grep.
Затем установите grep:
Обратите внимание, что вам нужно изменить путь. Например, добавьте в свой .bashrc:
Я должен был сделать то же самое на моем Mac, когда после того, как
brew upgrade
мой grep больше не был доступен (он был установлен ранее сbrew install grep --with-default-names
, и эта опция больше не доступна).Это решение работает с Homebrew 2.1.1:
Этот ответ основан на ответе от nohillside с комментариями Джонатана Комара и Скотта Марднера.
источник