Tengo coreutils pero no estoy seguro de si GNU grep está ahí. 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
así 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
.
El comando type -p grep
regresa/usr/bin/grep
¿Cómo puedes instalar GNU Grep en macOS?
GNU grep no es parte de coreutils. Para instalar, ejecutar
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 extienda 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.
La respuesta de nohillside necesita actualizarse de la siguiente manera:
Si grep ya fue 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 necesita 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 brew upgrade
ya no se podía acceder a mi grep (se instaló previamente 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.