80 votes

Comment installer et utiliser GNU Grep sous MacOS ?

J'ai coreutils mais je ne suis pas sûr que GNU grep soit là. Je veux juste utiliser le drapeau -P pour les expressions rationnelles Perl que l'on trouve dans GNU grep, mais pas dans BSD grep.

Mon PATH est /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 donc j'ai coreutils en premier dans le PATH.

Cependant, grep est BSD lorsque je l'utilise : grep --version donne grep (BSD grep) 2.5.1-FreeBSD .

Commande type -p grep renvoie à /usr/bin/grep

Comment installer GNU Grep sous MacOS ?

119voto

nohillside Points 82672

GNU grep ne fait pas partie de coreutils. Pour l'installer, exécutez

brew install grep

Comme avec coreutils, ceci ne remplace pas automatiquement le grep existant.

==> 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"

Ainsi, après l'installation, vous pouvez soit utiliser ggrep , gegrep y gfgrep ; ou prolonger PATH comme indiqué ci-dessus pour utiliser grep etc. La deuxième option peut confondre certains scripts spécifiques à MacOS bien que dans le cas où les options diffèrent.

14voto

Justin Muller Points 919

La réponse de nohillside doit être mise à jour comme suit :

Si grep était déjà installé par brew, supprimez grep en premier.

% brew uninstall grep

Puis installez 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

Notez que vous devez modifier le PATH. Par exemple, ajoutez à votre .bashrc :

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

J'ai dû faire ce qui précède sur mon Mac quand après brew upgrade mon grep n'était plus accessible (il était installé précédemment avec brew install grep --with-default-names et cette option n'est plus disponible).

Cette solution fonctionne à partir de la version 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)

Cette réponse est basée sur celle de nohillside, avec des commentaires de Jonathan Komar et scott m gardner.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X