Grep en el terminal de Mac OS X: solo muestra un color

9

Estoy acostumbrado a grep poder colorear el nombre del archivo, el número de línea y la coincidencia misma. Estos tres deberían ser de diferentes colores. Esto funciona perfectamente en un terminal de Linux e incluso en MinGW en Windows, pero en OS X, incluso si configuro GREP_COLOR, solo puedo obtener color en el resultado coincidente.

¿La versión de grep empaquetada con el sistema operativo es demasiado antigua?

10.7.3 en MBA 13 "con Terminal.app.

Steven Lu
fuente
Esto todavía funciona? -> superuser.com/questions/416835/...
Emgee
Acabo de llegar de allí. Hice exactamente lo que se describió. Solo se configuró un color.
Steven Lu

Respuestas:

9

Como ya dijo Ignacio, OS X grep está un poco desactualizado (es la versión 2.5.1). Sin embargo, puede instalar la última versión de GNU grep.

Como siempre, puede instalar la mayoría de las herramientas de Linux que faltan en OS X a través de Homebrew , pero su política no es ofrecer duplicados para las herramientas del sistema. Hay un repositorio alternativo para estos engañados, pero primero debe "tocarlo":

brew tap homebrew/dupes/

Luego puede instalar la nueva grep(versión 2.11 a partir de mayo de 2012):

brew install homebrew/dupes/grep

Tenga en cuenta que /usr/bintodavía viene primero en su PATH, por lo que necesita /usr/local/bin/grepla nueva versión.

slhck
fuente
¿Cuál es una buena manera de hacer que grep se ejecute desde la nueva ubicación? un alias?
Steven Lu
2
@ StevenLu, es posible que desee poner /usr/local/binantes /usr/bin. por ejemplo, puede hacer esto globalmente editando /etc/paths, o hacer que su script de inicio de shell (por ejemplo, ~/.bash_profile) edite PATHpara cambiar el orden.
Chris Page
2
@StevenLu, vea enmendar la RUTA para que / usr / local / bin esté por delante de / usr / bin .
Chris Page
1

Correcto. Varios colores se admitieron por primera vez en GNU grep 2.5.3.

Ignacio Vazquez-Abrams
fuente