Jai des coreutils mais je ne suis pas sûr que GNU grep soit là. Je veux juste utiliser le drapeau -P pour Perl regex qui se 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 jai des coreutils en premier dans le PATH.

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

La commande type -p grep renvoie /usr/bin/grep

Comment installer GNU Grep sous macOS?

Réponse

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

brew install grep 

Comme pour coreutils, cela 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 linstallation, vous pouvez soit utiliser ggrep, gegrep et gfgrep ; ou étendez PATH comme indiqué ci-dessus pour utiliser grep etc. La deuxième option peut confondre certains scripts spécifiques à macOS au cas où les options diffèrent.

Réponse

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

Si grep a déjà été installé par brew , supprimez dabord grep.

% brew uninstall grep 

Ensuite, 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" 

Jai dû faire ce qui précède sur mon mac après brew upgrade mon grep nétait plus accessible (il a été installé précédemment avec brew install grep --with-default-names, et cette option nest plus disponible).

Cette solution fonctionne depuis 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 les commentaires de Jonathan Komar et Scott m Gardner.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *