Ik heb coreutils maar ik weet niet zeker of GNU grep aanwezig is. Ik wil alleen de vlag -P gebruiken voor Perl-regex die in GNU grep wordt gevonden, maar niet in BSD grep.

Mijn PAD is /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, dus ik heb coreutils eerst in het PAD.

Grep is echter BSD als ik het gebruik: grep --version geeft grep (BSD grep) 2.5.1-FreeBSD.

Commando type -p grep retourneert /usr/bin/grep

Hoe kun je GNU Grep in macOS installeren?

Answer

GNU grep is geen onderdeel van coreutils. Om te installeren, voer je uit

brew install grep 

Net als bij coreutils, vervangt dit “niet automatisch de bestaande 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" 

Dus na het installeren kun je ofwel ggrep, gegrep en gfgrep gebruiken ; of breid PATH uit zoals hierboven weergegeven om grep etc. te gebruiken. De tweede optie kan sommige macOS-specifieke scripts verwarren, hoewel de opties verschillen.

Answer

Het antwoord van nohillside moet als volgt worden bijgewerkt:

Als grep al was geïnstalleerd door brew , verwijder eerst grep.

% brew uninstall grep 

Installeer vervolgens 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 

Merk op dat u moeten het PATH wijzigen. Voeg bijvoorbeeld aan uw .bashrc toe:

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

Ik moest het bovenstaande op mijn Mac doen toen ik na brew upgrade mijn grep was niet langer toegankelijk (het was eerder geïnstalleerd met brew install grep --with-default-names, en deze optie is niet meer beschikbaar).

Deze oplossing werkt vanaf 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) 

Dit antwoord is gebaseerd op het antwoord van nohillside, met opmerkingen van Jonathan Komar en scott m gardner.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *