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?

Árbol77
fuente
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.

richq
fuente
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

maco
fuente
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'

Paolo Sammicheli
fuente
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.

rfabbri
fuente