Estaba jugando con la configuración GREP_OPTIONS
y no pude hacerlo funcionar. Simplemente curioso por qué.
Salida de comandos de prueba simple:
richard@ubuntu:~$ echo $GREP_OPTIONS
richard@ubuntu:~$
richard@ubuntu:~$ ls | grep o
Desktop
downloads
Dropbox
ebooks
workspace
richard@ubuntu:~$ ls | grep o --color=always | less -R
richard@ubuntu:~$ export GREP_OPTIONS="--color=always"
richard@ubuntu:~$ ls | grep o | less -R
- El primer grep sale al terminal en color (cada 'o' es roja)
- El segundo grep sale con menos color (igual que 1)
- Pero el tercer grep sale a menos pero en blanco y negro, pero esto debería ser en color.
Entonces parece que grep está ignorando GREP_OPTIONS
. ¿Es eso un error o estoy haciendo algo mal?
(Ubuntu 12.04.2, GNU grep 2.10)
grep v3.1
en voz alta se quejaGREP_OPTIONS
en cada invocación:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
alias grep='GREP_COLOR="1;33;40" LANG=C grep --color=auto'
para resaltar en amarillo.Respuestas:
Si
grep o
produce salida de color, entoncesgrep
es un alias paragrep --color=auto
ogrep --color=always
(o posiblemente más opciones), oGREP_OPTIONS
se establece en un valor que contiene--color=auto
o--color=always
. Como$GREP_OPTIONS
está vacío, debe ser el alias.Como
grep o | less -R
no muestra colores, el alias debe sergrep --color=auto
(una elección sensata). Con el alias, elgrep
comando siempre recibe la--color
opción en la línea de comando, y esto tiene prioridad sobre la variable de entorno.Si desea utilizar la variable de entorno, elimine la definición de alias de su
~/.bashrc
, o para una sesión de ejecuciónunalias grep
. Puede reemplazaralias grep='grep --color=auto'
porexport GREP_OPTIONS='--color=auto'
: tienen esencialmente el mismo significado, excepto que:GREP_OPTIONS
un valor diferente solo anula el último;grep
desde un shell interactivo, mientras que la configuraciónGREP_OPTIONS
también se aplica cuandogrep
se ejecuta desde scripts y otras aplicaciones.Nunca ponga
--color=always
ni la mayoría de las otras opciones enGREP_OPTIONS
: rompería muchos programas que analizan la salida degrep
.--color=auto
es la única opción segura para ponerGREP_OPTIONS
. Para cualquier otra cosa, use el alias. Las versiones futuras de GNU grep dejarán de admitir la opción por este motivo.Tenga en cuenta que la definición de alias entra
~/.bashrc
(es una configuración de shell), mientras que la definición de la variable de entorno entra~/.profile
(es una configuración de sesión). Consulte ¿Hay un archivo equivalente ".bashrc" leído por todos los shells?Si desea ejecutar el comando sin alias solo una vez, ejecute en
\grep
lugar degrep
(citando cualquier parte del nombre omite la búsqueda de alias).fuente
GREP_OPTIONS
está en desuso a favor de laalias
variante.