¿Cómo puedo grep con color en la terminal de Mac OS X?

40

Recientemente descubrí que en Mac OS XI puedo configurar esto en mi shell ~/.profilepara que cuando lo use grepimprima las coincidencias en color (blanco y rojo).

alias grep='GREP_COLOR="1;37;41" LANG=C grep --color=auto'

Pero configurar un alias parece una especie de truco para hacerlo. Anteriormente lo había intentado sin suerte:

export GREP_COLOR=always           # works fine in Linux

Y luego también probé:

export GREP_COLOR="1;37;41"

¿Hay una mejor manera de hacer esto que configurar un alias?

cwd
fuente
No veo el punto de tu pregunta. Un alias es cómo haces esto. Para eso es. exportla variable de entorno, por ejemplo .bash_profile, en y definir alias grep='grep --color', y ya está.
Daniel Beck
2
mira
lupincho

Respuestas:

61

Según Grep_color en mac como lo sugiere @lupincho, esto parece funcionar bien y no usa un alias:

export GREP_OPTIONS='--color=always'
export GREP_COLOR='1;35;40'
Steve Brown
fuente
13
Tenga un +1 para esto como una buena solución, sin embargo, establecer GREP_OPTIONS conduce a grep: warning: GREP_OPTIONS is deprecated; please use an alias or script. Ahora se prefiere algo como esto:alias grep="`which grep` --color=always"
joelittlejohn
2
@joelittlejohn no funciona cuando se usa grep en tuberías con xargs, por ejemplo:find /usr/share -name '*.txt' |xargs grep testing
rfabbri
1
@rfabbri Supongo que es uno para tratar con el equipo grep que desaprobó esto :)
joelittlejohn
3
--color=alwayses peligroso. Las secuencias de comandos que se ejecutan desde el shell también heredarán la opción y causarán fallas muy misteriosas cuando grep comience a inyectar códigos de color para que salgan dentro de las secuencias de comandos. --color=autono causa este problema
Sampo
1
@joelittlejohn que no es cierto para el grep predeterminado en OSX. Incluso en High Sierra 10.13, usa FREEBSD grep 2.5.1 que NO HA DEpreciado GREP_OPTIONS. Eso solo es cierto en gnu / grep
cde