Ho scritto una sceneggiatura per questo anni fa. Puoi facilmente coprire il caso di più colori eseguendo piping successive invocazioni di highlight
gli uni agli altri.
Dal README:
Usage: ./highlight [-i] [--color=COLOR_STRING] [--] <PATTERN0> [PATTERN1...]
This is highlight version 1.0.
This program takes text via standard input and outputs it with the given
perlre(1) pattern(s) highlighted with the given color. If no color option
is specified, it defaults to 'bold red'. Colors may be anything
that Perl's Term::ANSIColor understands. This program is similar to
"grep --color PATTERN" except both matching and non-matching lines are
printed.
The default color can be selected via the $HIGHLIGHT_COLOR environment
variable. The command-line option takes precedence.
Passing -i or --ignore-case will enable case-insensitive matching.
If your pattern begins with a dash ('-'), you can pass a '--' argument
after any options and before your pattern to distinguish it from an
option.
sì, c'è un modo per farlo. Cioè, purché il tuo terminale supporti le sequenze di escape ANSI . Questa è la maggior parte dei terminali esistenti.
Penso di non aver bisogno di spiegare come grep, sed ecc. il punto è il colore giusto?
vedi sotto, questo renderà
WARN yellow
ERROR red
foo green
ecco un esempio:
kent$ echo "WARN
ERROR
foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'
Nota :\x1b
è esadecimale per ESC carattere (^V Esc ).
per vedere il risultato:
Ho scritto TxtStyle, una piccola utility per colorare i log. Definisci le espressioni regolari da evidenziare in ~/.txts.conf
file:
[Style="example"]
!red: regex("error")
green: regex("\d{4}-\d\d-\d\d")
# ...
E poi applica gli stili:
txts -n example example.log
oppure puoi anche reindirizzare l'output
tail -f example.log | txts -n example
Uso uno strumento chiamato grc per questo da anni. funziona come un fascino. Viene fornito con alcuni modelli abbastanza buoni per molti output e formati di log standard ed è facile definirne uno personalizzato. Un comando che uso spesso è
grc tail -f /var/log/syslog
Colora l'output di syslog in modo che sia facile individuare gli errori (tipicamente contrassegnati in rosso.
Trova lo strumento qui:
https://github.com/garabik/grc
(è anche disponibile come pacchetto per le versioni Linux più comuni).