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 gefunden wird, 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, daher habe ich zuerst Coreutils im PATH.

grep ist jedoch BSD, wenn ich es verwende: grep --version gibt grep (BSD grep) 2.5.1-FreeBSD an.

Befehl type -p grep gibt /usr/bin/grep

zurück. Wie können Sie GNU Grep unter macOS installieren?

Antwort

GNU grep ist nicht Teil von coreutils. Führen Sie zum Installieren

brew install grep 

aus. Wie bei coreutils ersetzt dies nicht automatisch das vorhandene 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" 

Nach der Installation können Sie entweder ggrep, gegrep und gfgrep verwenden ; oder erweitern Sie PATH wie oben gezeigt, um grep usw. zu verwenden. Die zweite Option kann jedoch einige macOS-spezifische Skripte verwirren, falls sich die Optionen unterscheiden.

Antwort

Die Antwort von nohillside muss wie folgt aktualisiert werden:

Wenn grep bereits von Brew installiert wurde Entfernen Sie zuerst grep.

% brew uninstall grep 

Installieren Sie dann 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 

Beachten Sie, dass Sie Sie müssen den PFAD ändern. Fügen Sie beispielsweise Folgendes zu Ihrer .bashrc hinzu:

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

Ich musste die obigen Schritte auf meinem Mac ausführen, wenn nach brew upgrade Auf mein Grep war nicht mehr zugegriffen (es wurde zuvor mit , und diese Option ist nicht mehr verfügbar.)

Diese Lösung funktioniert ab 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) 

Diese Antwort basiert auf der von nohillside mit Kommentaren von Jonathan Komar und Scott Gardner.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.