OSXでGNU Grepをインストールして使用する方法


50

coreutilsはありますが、GNU grepがあるかどうかはわかりません。-PGNU grepにあるが、BSD grepにはないPerl正規表現のフラグを使用したいだけです。

私の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

どのようにしてOSXにGNU Grepをインストールできますか?

回答:


72

GNU grepはcoreutilsの一部ではありません。インストールするには、実行します

brew install grep

coreutilsと同様に、これは既存のgrepを自動的に置き換えません

==> Caveats
The command has been installed with the prefix "g".
If you do not want the prefix, install using the "with-default-names" option.

2
私がこれを行ったとき、それgrepはまだfreeBSDですがegrepfgrepGNUです。デフォルトgrepをGNU に設定するにはどうすればよいですか?(私は使用しました--with-default-names
ジューシー

3
@juicyこれを新しいシェルで試しましたか?
nohillside

3
参考のため、GNU grepのコマンドの名前はggrep
ウィル・シェパード

2
既にインストールされている場合は実行brew uninstall grep(またはbrew remove grep)し、コマンドラインでbrew install grep --with-default-namesGNU grep優先順位を与えます。Homebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)新しいシェルを開くか、実行するhash -rexport PATH=$PATH、バイナリアプリケーション(つまり、新しいGNU grep)へのパスを再ロードすることを忘れないでください。
ジョナサンKomar

3
残念ながらHomebrewバージョン2.0.0では、@ with-default-namesフラグは使用できなくなりました。
デズ

5

コメントが示すように、最高評価の回答(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 upgradegrepにアクセスできなくなった後、Macで上記の手順を実行する必要がありました(以前にでインストールされbrew install grep --with-default-names、このオプションは使用できなくなりました)。

このソリューションは、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からのものに基づいています。


これは、受け入れられている答えよりも優れています。
smci
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.