Apple - How to install and use GNU Grep in macOS

GNU grep is not part of coreutils. To install, run

brew install grep

As with coreutils, this doesn't automatically replace the existing 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"

So after installing you can either use ggrep, gegrep and gfgrep; or extend PATH as shown above to use grep etc. The second option may confuse some macOS specific scripts though in case the options differ.


The answer from nohillside needs updating as follows:

If grep was already installed by brew, remove grep first.

% brew uninstall grep

Then install 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

Note that you do need to modify the PATH. For example, add to your .bashrc:

export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"

I had to do the above on my mac when after brew upgrade my grep was no longer accessible (it was installed previously with brew install grep --with-default-names, and this option is not available any more).

This solution works as of 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)

This answer is based on the one from nohillside, with comments from Jonathan Komar and scott m gardner.