Tengo coreutils pero no estoy seguro de si GNU grep está allí. Solo quiero usar la bandera -P
para Perl regex que se encuentra en GNU grep, pero no en BSD grep.
Mi RUTA es /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
por lo que tengo coreutils primero en la RUTA.
Sin embargo, grep es BSD cuando lo estoy usando: grep --version
da grep (BSD grep) 2.5.1-FreeBSD
.
Comando type -p grep
regresa/usr/bin/grep
¿Cómo se puede instalar GNU Grep en OSX?
grep
sigue siendo el FreeBSD, peroegrep
yfgrep
son GNU. ¿Cómo puedo establecer el valor predeterminadogrep
en GNU? (Utilicé--with-default-names
)ggrep
brew uninstall grep
(obrew remove grep
) si ya está instalado ybrew install grep --with-default-names
para dargrep
prioridad a GNU en la línea de comando. Probado conHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
No olvide abrir un nuevo shell o ejecutarhash -r
oexport PATH=$PATH
volver a cargar las rutas a las aplicaciones binarias (es decir, su nuevo GNU grep).Como indican los comentarios, la respuesta mejor calificada (de nohillside) necesita actualizarse de la siguiente manera:
Si grep ya estaba instalado por brew, elimine grep primero.
Luego instale grep:
Tenga en cuenta que necesita modificar la RUTA. Por ejemplo, agregue a su .bashrc:
Tuve que hacer lo anterior en mi Mac cuando después de que
brew upgrade
mi grep ya no fuera accesible (se instaló previamente conbrew install grep --with-default-names
, y esta opción ya no está disponible).Esta solución funciona a partir de Homebrew 2.1.1:
Esta respuesta se basa en la de nohillside, con comentarios de Jonathan Komar y scott m gardner.
fuente