¿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 lsy 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 glarken su lugar grep, intentará mostrarlo con colores.
Si se utiliza lesscon el -Rque 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 diffsalida como entrada porque siempre generará los códigos de escape ANSI.
grep "string" file.txt | headpara 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, tailetc 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=automodo (para hacer que el programa piense que la salida va a la consola en lugar de a la tubería)?
head, tailetc., detecta que se está canalizando a otro programa (para que pueda generar datos sin colores, etc.).
head,tailetc. 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).