Mám coreutils, ale nejsem si jistý, jestli tam GNU grep je. Chci jen použít příznak -P
pro Perl regex, který se nachází v GNU grep, ale ne v BSD grep.
Moje PATH je /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
, takže nejprve mám v PATH coreutils.
Grep je však BSD, když jej používám: grep --version
dává grep (BSD grep) 2.5.1-FreeBSD
.
Příkaz type -p grep
vrací /usr/bin/grep
Jak můžete nainstalovat GNU Grep v systému macOS?
Odpověď
GNU grep není součástí coreutils. Chcete-li nainstalovat, spusťte
brew install grep
Stejně jako u coreutils to automaticky nenahradí stávající 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"
Takže po instalaci můžete použít ggrep
, gegrep
a gfgrep
; nebo rozšířit PATH
, jak je uvedeno výše, na použití grep
atd. Druhá možnost může zmást některé skripty specifické pro MacOS, i když se tyto možnosti liší.
Odpověď
Odpověď od nohillside je třeba aktualizovat následovně:
Pokud již byl grep nainstalován programem brew , nejprve odeberte grep.
% brew uninstall grep
Poté nainstalujte 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
Upozorňujeme, že je třeba upravit PATH. Například přidejte do svého .bashrc:
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Musel jsem udělat výše na mém macu, když po brew upgrade
můj grep již nebyl přístupný (dříve byl nainstalován s brew install grep --with-default-names
a tato možnost již není k dispozici).
Toto řešení funguje od verze 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)
Tato odpověď je založena na odpovědi od nohillside s komentáři Jonathana Komara a Scotta Gardnera.