¿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,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).Respuestas:
Supongo que está canalizando
lsy 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
glarken su lugargrep, intentará mostrarlo con colores.Si se utiliza
lesscon el-Rque 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 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 | headDepende 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)fuente
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.).