Esiste un modo per mantenere la colorazione del testo passato attraverso il tubo |
a head
, tail
, less
, ecc?
Esiste un modo per mantenere la colorazione del testo passato attraverso il tubo |
a head
, tail
, less
, ecc?
Risposte:
Presumo che tu stia effettuando il piping ls
e desideri preservare i codici colore del terminale. Puoi dire ls --color=always
(invece del valore predefinito di --color=auto
), che conserverà i codici, ma ciò non garantirà che la cosa a cui stai eseguendo il piping sappia come capirli.
Se lo usi glark
invece grep
, proverà a visualizzare con i colori.
Se lo usi less
con -R
esso tenterà di visualizzare con i colori.
git
. Ho scoperto che ha una configurazione simile (ad es. git config color.diff always
) Che mantiene la colorazione.
git diff
output come input perché emetterà sempre i codici di escape ANSI.
grep "string" file.txt | head
per assicurarmi che il risultato di grep fosse colorato, l'ho appena cambiato ingrep "string" file.txt --color=always | head
Dipende dal programma che genera l'output nella pipe.
head
, tail
ecc. non sono quelli che rimuovono i colori, è il programma che genera i dati che di solito controlla se l'output sta andando alla console (colorato), un file o una pipe (non colorato)
Ho trovato un altro Q&A SU che mostra come mentire ai programmi di piping per l'output come se stessero inviando l'output a una console (emulando una console con unbuffer
)
color=auto
modalità (per far pensare al programma che l'output vada alla console anziché alla pipe)?
head
, tail
ecc., Rileva che viene reindirizzato a un altro programma (in modo che possa generare dati senza colori, ecc.).
head
,tail
ecc. non sono quelli che rimuovono i colori, è il programma che genera i dati che di solito controlla se l'output sta andando alla console (colorato), un file o una pipe (non colorato).