C'è un modo per mantenere il testo passato a testa, coda, meno, ecc. Da colorare?


26

Esiste un modo per mantenere la colorazione del testo passato attraverso il tubo |a head, tail, less, ecc?


Qualche programma di output specifico? Dipende dal programma che invia i dati attraverso la pipe. head, tailecc. 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).
KurzedMetal,

Risposte:


15

Presumo che tu stia effettuando il piping lse 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 glarkinvece grep, proverà a visualizzare con i colori.

Se lo usi lesscon -Resso tenterà di visualizzare con i colori.


6
Sto provando da git. Ho scoperto che ha una configurazione simile (ad es. git config color.diff always) Che mantiene la colorazione.
Timofey Gorshkov,

1
@Errandir il problema con quella configurazione è che interromperà qualsiasi script o comando che utilizza l' git diffoutput come input perché emetterà sempre i codici di escape ANSI.
KurzedMetal,

@Errandir, grazie! Non ho script che si basano su un output pulito da git diff quindi questo funziona per me !! Grazie !
Ashutosh Jindal,

L'ho usato per grep: grep "string" file.txt | headper assicurarmi che il risultato di grep fosse colorato, l'ho appena cambiato ingrep "string" file.txt --color=always | head
Emil Stenström,

13

Dipende dal programma che genera l'output nella pipe.

head, tailecc. 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)


C'è un modo per mantenere la colorazione in color=automodalità (per far pensare al programma che l'output vada alla console anziché alla pipe)?
Timofey Gorshkov,

@KurzedMetal In che modo un programma, ad esempio head, tailecc., Rileva che viene reindirizzato a un altro programma (in modo che possa generare dati senza colori, ecc.).
Jorge Bucaran,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.