Reemplace el comando grep con grep -n --colour?


17

Porque soy vago ... cada vez que quiero usar grep, quiero que sea grep -n --colour. ¿Hay alguna manera de mapear esto permanentemente?


66
+1 para "Porque soy vago ...". ¿Alguna vez consideró una carrera como desarrollador? :)
Dr. Hannibal Lecter

Respuestas:


31

En su archivo $ HOME / .bashrc, agregue:

export GREP_OPTIONS="-n --color"

Esto también funcionará con egrepy en alias que usan grep.

Actualización : GREP_OPTIONS está en desuso de grep 2.21 en adelante y si usa esta solución, verá la siguiente advertencia:

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

Por lo tanto, la mejor solución es seguir los consejos de maco en su respuesta . O cambie a usar ag , que sale en color por defecto.


el respeto.
myusuf3

44
Respeto pero sin voto, ¿eh? ;-)
richq

1
Los alias se pueden usar después de una tubería muy bien. Simplemente no recurren.
maco

1
Hola, he votado. Esto me gusta más que el alias.
Dmitriy Likhten

@marco: tienes razón (con bash) - Estaba pensando en csh, donde no pueden. ¡Uy!
richq

29

Editar ~ / .bash_aliases Agregue una línea que dice:

alias grep='grep -n --color'

~ / .bash_aliases se incluye automáticamente por ~ / .bashrc si existe


8
O agregue la línea .profilesi desea que funcione en todos los shells, no solo bash.
LassePoulsen

1
esto no funcionará con xargs, por ejemplo:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

puede modificar el archivo .bashrc ubicado en su directorio de inicio definiendo un alias, que anulará cualquier configuración predeterminada:

alias grep = 'grep -n --color'

después del cambio, cierre y abra el terminal nuevamente porque el archivo se lee solo cuando abre el terminal.

Si echa un vistazo al archivo .bashrc, encontrará más alias predeterminados como:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'


1

Cree un script además del alias mencionado en las otras respuestas. Un alias por sí solo no siempre funcionará, y una capa de script es lo suficientemente rápida para la salida legible por humanos de todos modos.

Elija un nombre corto, como cgrep:

#!/bin/sh
grep --color -n "$@"

Colóquelo en su camino, digamos ~/bin(si lee UPE esto está en su camino :). Entonces cosas como esta funcionarán:

find /usr/share -name '*.txt' | xargs cgrep testing

Todavía no estoy tan contento, yo también quería que grep siempre coloreara en un terminal sin escribir selectivamente cgrep.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.