Tengo coreutils pero no estoy seguro si GNU grep está ahí. Solo quiero usar el indicador -P
para la expresión regular de Perl que se encuentra en GNU grep, pero no en BSD grep.
Mi PATH 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
así que primero tengo coreutils en PATH.
Sin embargo, grep es BSD cuando lo estoy usando: grep --version
da grep (BSD grep) 2.5.1-FreeBSD
.
El comando type -p grep
devuelve /usr/bin/grep
¿Cómo se puede instalar GNU Grep en macOS?
Respuesta
GNU grep no es parte de coreutils. Para instalar, ejecute
brew install grep
Al igual que con coreutils, esto no «reemplaza automáticamente el grep existente
==> 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"
Entonces, después de la instalación, puede usar ggrep
, gegrep
y gfgrep
; o extender PATH
como se muestra arriba para usar grep
etc. La segunda opción puede confundir algunos scripts específicos de macOS, aunque en caso de que las opciones difieran.
Respuesta
La respuesta de nohillside necesita actualizarse de la siguiente manera:
Si grep ya estaba instalado por brew , elimine grep primero.
% brew uninstall grep
Luego instale 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
Tenga en cuenta que necesito modificar la RUTA. Por ejemplo, agregue a su .bashrc:
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Tuve que hacer lo anterior en mi Mac cuando después de brew upgrade
ya no se podía acceder a mi grep (se instaló anteriormente con brew install grep --with-default-names
, y esta opción ya no está disponible).
Esta solución funciona a partir de 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)
Esta respuesta se basa en la de nohillside, con comentarios de Jonathan Komar y scott m gardner.