Ich habe Coreutils, bin mir aber nicht sicher, ob GNU grep vorhanden ist. Ich möchte nur das Flag -P
für Perl-Regex verwenden, das in GNU grep zu finden ist, aber nicht in BSD grep.
Mein PATH ist /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
so, dass ich Coreutils zuerst im PATH habe.
Grep ist jedoch BSD, wenn ich es benutze: grep --version
gibt grep (BSD grep) 2.5.1-FreeBSD
.
Befehl type -p grep
kehrt zurück/usr/bin/grep
Wie kann man GNU Grep in OSX installieren?
grep
immer noch das FreeBSD, aberegrep
undfgrep
sind GNU. Wie kann ich den Standardgrep
auf GNU setzen? (Ich habe verwendet--with-default-names
)ggrep
brew uninstall grep
(oderbrew remove grep
) aus, falls bereits installiert, undbrew install grep --with-default-names
geben Sie GNUgrep
in der Befehlszeile den Vorrang. Getestet mitHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
Vergessen Sie nicht, eine neue Shell zu öffnen oder auszuführenhash -r
oderexport PATH=$PATH
die Pfade zu Binäranwendungen (dh Ihrem neuen GNU-grep) neu zu laden.Wie aus den Kommentaren hervorgeht, muss die bestbewertete Antwort (von nohillside) wie folgt aktualisiert werden:
Wenn grep bereits von brew installiert wurde, entfernen Sie zuerst grep.
Dann installiere grep:
Beachten Sie, dass Sie den PFAD ändern müssen. Fügen Sie Ihrer .bashrc beispielsweise Folgendes hinzu:
Ich musste das oben genannte auf meinem Mac ausführen, als
brew upgrade
mein grep nicht mehrbrew install grep --with-default-names
verfügbar war (es wurde zuvor mit installiert und diese Option ist nicht mehr verfügbar).Diese Lösung funktioniert ab Homebrew 2.1.1:
Diese Antwort basiert auf der von Nohillside mit Kommentaren von Jonathan Komar und Scott Gardner.
quelle