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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *