Mam coreutils, ale nie jestem pewien, czy jest tam GNU grep. Chcę po prostu użyć flagi -P
dla wyrażenia regularnego Perla, którą można znaleźć w GNU grep, ale nie w BSD grep.
Moja PATH to /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
, więc najpierw mam coreutils w PATH.
Jednak grep jest BSD, kiedy go używam: grep --version
daje grep (BSD grep) 2.5.1-FreeBSD
.
Polecenie type -p grep
zwraca /usr/bin/grep
Jak zainstalować GNU Grep w macOS?
Odpowiedź
GNU grep nie jest częścią coreutils. Aby zainstalować, uruchom
brew install grep
Podobnie jak w przypadku coreutils, nie zastępuje to automatycznie istniejącego grepa
==> 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"
Po zainstalowaniu możesz użyć ggrep
, gegrep
i gfgrep
; lub rozszerz PATH
, jak pokazano powyżej, aby użyć grep
itp. Druga opcja może zmylić niektóre skrypty specyficzne dla macOS, chociaż opcje są różne.
Odpowiedź
Odpowiedź z Nohillside wymaga aktualizacji w następujący sposób:
Jeśli grep został już zainstalowany przez brew , najpierw usuń grep.
% brew uninstall grep
Następnie zainstaluj 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
Pamiętaj, trzeba zmodyfikować ŚCIEŻKĘ. Na przykład dodaj do swojego .bashrc:
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Powyższe musiałem zrobić na moim Macu po brew upgrade
mój grep nie był już dostępny (został zainstalowany wcześniej z brew install grep --with-default-names
i ta opcja nie jest już dostępna).
To rozwiązanie działa od 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)
Ta odpowiedź jest oparta na odpowiedzi z Nohillside, z komentarzami Jonathana Komara i Scotta M Gardnera.