Si uso dos grepcomandos consecutivos , por ejemplo:
echo "foo bar" | grep foo | grep bar
Entonces el primer patrón ("foo") no está resaltado. De hecho, parece que grep elimina los códigos de color de su entrada. hay alguna forma de prevenir esto?

Respuestas:
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:de por ejemplo:
Para anular el uso
--color=always.Ejemplo:
Tener archivo:
Luego
colorearía
ID,2013yfoo.colorearía
IDyfoo, pero no2013.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 coincidir
ID=111.En alguna ocasión, uno quizás querría colores terminales en el archivo . Intenta, por ejemplo
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:
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 manerasgrepdebido al hecho mencionado anteriormente 1 .Agregue un
aliassi lo usa con frecuencia.GREP_OPTIONSy--colortomar tres opciones :never,autoyalways. Los dos primeros deberían ser los únicos consideradosGREP_OPTIONS.También puede consultar
GREP_COLORSen lasmanpáginas o en gnu grep .fuente
export GREP_OPTIONS="--color=always"en un .bashrc hace que las opciones sean las predeterminadas para cualquier greps, ¡y prácticamente lo ha logrado!lsNative y GNU Coreutils.