Si uso dos grep
comandos 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
.grep
detecta 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
,2013
yfoo
.colorearía
ID
yfoo
, 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
.bashrc
etc., 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 manerasgrep
debido al hecho mencionado anteriormente 1 .Agregue un
alias
si lo usa con frecuencia.GREP_OPTIONS
y--color
tomar tres opciones :never
,auto
yalways
. Los dos primeros deberían ser los únicos consideradosGREP_OPTIONS
.También puede consultar
GREP_COLORS
en lasman
pá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!ls
Native y GNU Coreutils.