Ho coreutils ma non sono sicuro che GNU grep sia presente. Voglio solo usare il flag -P per Perl regex che si trova in GNU grep, ma non in BSD grep.

Il mio PATH è /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 quindi ho coreutils prima nel PATH.

Tuttavia, grep è BSD quando lo uso: grep --version restituisce grep (BSD grep) 2.5.1-FreeBSD.

Il comando type -p grep restituisce /usr/bin/grep

Come puoi installare GNU Grep in macOS?

Risposta

GNU grep non fa parte di coreutils. Per installare, esegui

brew install grep 

Come con coreutils, questo non “t sostituisce automaticamente il grep esistente

==> 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" 

Quindi dopo linstallazione puoi utilizzare ggrep, gegrep e gfgrep oppure estendi PATH come mostrato sopra per utilizzare grep ecc. La seconda opzione potrebbe confondere alcuni script specifici di macOS anche se le opzioni differiscono.

Risposta

La risposta di nohillside deve essere aggiornata come segue:

Se grep è stato già installato da brew , rimuovere prima grep.

% brew uninstall grep 

Quindi installare 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 

Tieni presente che è necessario modificare il PERCORSO. Ad esempio, aggiungi al tuo .bashrc:

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

Ho dovuto fare quanto sopra sul mio Mac quando dopo brew upgrade il mio grep non era più accessibile (era installato in precedenza con brew install grep --with-default-names e questa opzione non è più disponibile).

Questa soluzione funziona a partire da 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) 

Questa risposta è basata su quella di nohillside, con i commenti di Jonathan Komar e scott m gardner.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *