coreutilsがありますが、GNUGrepが存在するかどうかわかりません。 GNUgrepにはあるがBSDgrepにはないPerl正規表現にフラグ-P
を使用したいだけです。
私の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
なので、PATHの最初にcoreutilsがあります。
ただし、grepを使用している場合はBSDです:grep --version
はgrep (BSD grep) 2.5.1-FreeBSD
を提供します。
コマンドtype -p grep
は/usr/bin/grep
を返します
macOSにGNUGrepをインストールするにはどうすればよいですか?
回答
GNUgrepはcoreutilsの一部ではありません。インストールするには、
brew install grep
coreutilsと同様に、これによって既存のgrepが自動的に置き換えられることはありません
==> Caveats All commands have been installed with the prefix "g". If you need to use these commands with their normal names, you can add a "gnubin" directory to your PATH from your bashrc like: PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
したがって、インストール後は、ggrep
、gegrep
、およびgfgrep
のいずれかを使用できます。 ;または、上記のようにPATH
を拡張してgrep
などを使用します。2番目のオプションは、オプションが異なる場合でも、一部のmacOS固有のスクリプトを混乱させる可能性があります。
回答
nohillsideからの回答は次のように更新する必要があります。
grepがすでにbrewによってインストールされている場合、最初にgrepを削除します。
% brew uninstall grep
次にgrepをインストールします:
% brew install grep All commands have been installed with the prefix "g". If you need to use these commands with their normal names, you can add a "gnubin" directory to your PATH from your bashrc like: PATH="/usr/local/opt/grep/libexec/gnubin:$PATH" =º /usr/local/Cellar/grep/3.3: 21 files, 880.7KB
注意してくださいPATHを変更する必要があります。たとえば、.bashrcに追加します。
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
brew upgrade
grepにアクセスできなくなりました(以前は、このオプションは使用できなくなりました。
このソリューションは、Homebrew 2.1.1以降で機能します:
brew --version Homebrew 2.1.1 Homebrew/homebrew-core (git revision 5afdd; last commit 2019-04-22) Homebrew/homebrew-cask (git revision a5a206; last commit 2019-04-22)
この回答は、nohillsideの回答に基づいており、JonathanKomarとscottmgardnerからのコメントがあります。