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.