2013-10-10 10 views
12

Ho un sacco di script in esecuzione nel mio terminale (e non ho la possibilità di modificarli) che trasmettono messaggi al terminale. Vorrei che il mio terminale colorasse automaticamente determinate parole nell'output.Parole specifiche di colore nel terminale Linux ogni volta che appaiono

Ad esempio, alcuni degli script emettono FAIL quando un test fallisce. Come posso configurare il terminale per colorare questa parola specifica, ogni volta che appare, in un colore specifico (ad esempio, rosso).

+0

Duplicato: http://stackoverflow.com/questions/2616906/how-do-i-output-coloured-text-to-a-linux-terminal – usr2564301

+3

@Jongware: non un duplicato; questa domanda riguarda il fare in modo che il terminale cerchi le parole e le colora, non di fare in modo che un programma faccia l'output colorato. (È fuori tema per SO, però). – geoffspear

+2

Perché è stato downvoted? È una buona domanda, anche se non so se sia in tema per SO; forse dovrebbe essere migrato a SuperUser? –

risposta

8

Probabilmente è più semplice colorare le parole da soli, piuttosto che ottenere il terminale per colorarle per te. Se non riesci a modificare gli script che creano l'output, puoi filtrarli attraverso qualcos'altro?

Al più probabile che sia disponibile estremità della scala si potrebbe pipe l'output attraverso grep:

tail -F logfile | grep --color -P "FAIL|" 

Questo corrisponde sia "FAIL" o "", e mette in evidenza la parte corrispondente della stringa.

Si potrebbe inoltre utilizzare qualcosa di più specializzato, come descritto in this blog post, ad esempio.

+0

Vuoi dire, registrando l'output e poi eseguendo grep su di esso? Attualmente utilizzando {LINE OF SCRIPT} | grep --color "FAIL" sembra darmi l'output dove FAIL è, ma non esattamente ciò di cui avevo bisogno. – Turambar

+0

Questo dovrebbe essere 'grep --color -P" FAIL | "' che è leggermente diverso da quello che hai scritto nel tuo commento. –

+0

sì .. in modo che tutti gli output vengano visualizzati alla fine, con le parole colorate, ci deve essere un simbolo |. L'ho usato un po 'in modo creativo, al fine di mantenere solo le linee dell'output di cui avevo bisogno. Grazie! – Turambar

Problemi correlati