¿Hay alguna manera de mantener la coloración de texto pasa a través de la tubería |
a head
, tail
, less
, etc.?
¿Hay alguna manera de mantener la coloración de texto pasa a través de la tubería |
a head
, tail
, less
, etc.?
Respuestas:
Supongo que está canalizando ls
y desea preservar los códigos de color del terminal. Puede decir ls --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 lugar grep
, intentará mostrarlo con colores.
Si se utiliza less
con el -R
que se intenta mostrar con colores.
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
)
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.).
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).