Per colorare l'output del testo da un comando si potrebbe provare a reindirizzare l'output del comando in sed, come il seguente:
il tuo comando | sed -e 's/FAIL/^[[01;31mFAIL^[[00m/g' -e 's/SUCCESS/^[[01;32mSUCCESS^[[00m/g'
Si potrebbe anche inserire queste regole di sostituzione in un file di testo (ad es. colorize.sed) e utilizzare quanto segue:
il tuo comando | sed -f colorize.sed
Ciò consentirà di assegnare colori diversi a stringhe di corrispondenza diverse. Nota che nei miei esempi '^[' indica il carattere di escape, non un carato seguito da una parentesi quadra. Il carattere di escape può essere inserito nella regola digitando Ctrl-V e quindi premendo il tasto Esc.
I colori/effetti disponibili per questi codici tty sono i seguenti:
Colori di primo piano:Nero=30, Blu=34, Ciano=36, Verde=32, Viola=35, Rosso=31, Bianco=37, Giallo=33
Colori di sfondo:Nero=40, Blu=44, Ciano=46, Verde=42, Viola=45, Rosso=41, Bianco=47, Giallo=43
Effetti:Normale=00, Grassetto=01, Scuro=02, Sottolineato=04, Lampeggiante=05, Invertito=07, Nascosto=08
Questi possono anche essere combinati con un punto e virgola come ho fatto io (ad esempio 01;31 per ottenere il grassetto rosso).
Si noti che il codice '^[00m' è necessario per disabilitare il colore/effetto precedente, altrimenti il colore/effetto persisterà dopo la stringa di corrispondenza. Nota anche che alcuni degli effetti non funzionano (o funzionano come ho descritto) con alcuni emulatori di terminale.
Spero di non ripetere solo ciò che qualcun altro ha già detto, perché non ho letto l'intero thread della discussione.
Probabilmente è più facile colorare le parole da soli, piuttosto che farle colorare al terminale per te. Se non puoi modificare gli script che creano l'output, puoi filtrarli attraverso qualcos'altro?
All'estremità della scala più probabile che sia disponibile, puoi convogliare il tuo output attraverso grep
:
tail -F logfile | grep --color -P "FAIL|"
Questo corrisponde a "FAIL" o "", ed evidenzia la parte corrispondente della stringa.
Potresti inoltre utilizzare qualcosa di più specializzato, come descritto in questo post del blog, ad esempio.