Uso --color=always.
grepdetecta si la salida es a una tubería (o archivo). La mayoría de las veces nunca quieres colores cuando la salida es para archivar, ya que son secuencias de escape para el terminal. Típicamente:
foo ^[[01;31m^[[Kbar^[[m^[[K
de por ejemplo:
grep pattern file > result
Para anular el uso --color=always.
grep --color=always pattern file | ...
Ejemplo:
Tener archivo:
ID=111;Year=2013;foo=bar
ID=222;Year=2013;foo=baz
Luego
grep --color=always ID file | grep --color=always 2013 | grep foo
colorearía ID, 2013y foo.
grep --color=always ID file | grep 2013 | grep foo
colorearía IDy foo, pero no 2013.
1 Importante: también debe recordar que el desorden agregadode los colores se pasa al siguiente comando de la cadena. Una vez que la identificación está coloreada, no puede (con facilidad), por ejemplo, hacer coincidirID=111.
En alguna ocasión, uno quizás querría colores terminales en el archivo . Intenta, por ejemplo
grep --color=always foo file > result
cat result
Aunque el archivo resultante tendría una portabilidad muy limitada.
El color en sí también es una extensión.
Como mencionó el buen @slm , podría agregar:
export GREP_OPTIONS="--color=always"
a su .bashrcetc., pero no lo haga a menos que, por alguna razón, realmente comprenda las implicaciones y aún así quiera hacerlo. Se rompería de muchas maneras grepdebido al hecho mencionado anteriormente 1 .
Agregue un aliassi lo usa con frecuencia.
alias cgrep='grep --color=always'
GREP_OPTIONSy --color tomar tres opciones : never, autoy always. Los dos primeros deberían ser los únicos considerados GREP_OPTIONS.
También puede consultar GREP_COLORSen las manpáginas o en gnu grep .