Eu tenho coreutils, mas não tenho certeza se o GNU grep está lá. Eu só quero usar o sinalizador -P
para regl Perl que é encontrado no GNU grep, mas não no BSD grep.
Meu 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
assim que eu tenho coreutils primeiro no PATH.
No entanto, grep é BSD quando eu estou usando-o: grep --version
dá grep (BSD grep) 2.5.1-FreeBSD
.
Comando type -p grep
retorna/usr/bin/grep
Como você pode instalar o GNU Grep no OSX?
grep
ainda é o freeBSD, masegrep
efgrep
é o GNU. Como posso definir o padrãogrep
para GNU? (Eu usei--with-default-names
)ggrep
brew uninstall grep
(oubrew remove grep
) se já estiver instalado ebrew install grep --with-default-names
para dargrep
precedência ao GNU na linha de comando. Testado comHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
Não esqueça de abrir um novo shell ou executarhash -r
ouexport PATH=$PATH
recarregar os caminhos para aplicativos binários (por exemplo, seu novo GNU grep).Conforme os comentários indicam, a resposta com a classificação mais alta (do nohillside) precisa ser atualizada da seguinte forma:
Se o grep já foi instalado pelo brew, remova o grep primeiro.
Em seguida, instale o grep:
Observe que você precisa modificar o PATH. Por exemplo, adicione ao seu .bashrc:
Eu tive que fazer o acima no meu mac quando o
brew upgrade
meu grep não estava mais acessível (ele foi instalado anteriormente combrew install grep --with-default-names
, e esta opção não está mais disponível).Esta solução funciona a partir do Homebrew 2.1.1:
Essa resposta é baseada na de nohillside, com comentários de Jonathan Komar e Scott Gardner.
fonte