¿Hay alguna manera de mantener la coloración de texto pasa a través de la tubería |
a head
, tail
, less
, etc.?
linux
pipe
gnome-terminal
Timofey Gorshkov
fuente
fuente
head
,tail
etc. no son los que eliminan los colores, es el programa que genera los datos que generalmente verifican si la salida se dirige a la consola (de color), a un archivo o tubería (no de color).Respuestas:
Supongo que está canalizando
ls
y desea preservar los códigos de color del terminal. Puede decirls --color=always
(en lugar del valor predeterminado de--color=auto
), lo que preservará los códigos, pero eso no garantizará que la cosa a la que se dirige sepa cómo entenderlos.Si lo usa
glark
en su lugargrep
, intentará mostrarlo con colores.Si se utiliza
less
con el-R
que se intenta mostrar con colores.fuente
git
. He descubierto que tiene una configuración similar (p. Ej.git config color.diff always
) Que mantiene la coloración.git diff
salida como entrada porque siempre generará los códigos de escape ANSI.grep "string" file.txt | head
para asegurarse de que era de color el resultado de grep acabo de cambiar a estegrep "string" file.txt --color=always | head
Depende del programa que genere la salida en la tubería.
head
,tail
etc no son los que eliminan los colores, es el programa que genera los datos que generalmente verifican si la salida se dirige a la consola (en color), a un archivo o tubería (no en color)Encontré otro SU Q&A que muestra cómo mentir a los programas de canalización para que salgan como si estuvieran enviando la salida a una consola (emulando una consola con
unbuffer
)fuente
color=auto
modo (para hacer que el programa piense que la salida va a la consola en lugar de a la tubería)?head
,tail
etc., detecta que se está canalizando a otro programa (para que pueda generar datos sin colores, etc.).