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.