Escribí un guión para esto hace años. Puede cubrir fácilmente el caso de varios colores canalizando invocaciones sucesivas de highlight
entre sí.
Del LÉAME:
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í, hay manera de hacer esto. Es decir, siempre que su terminal admita secuencias de escape ANSI . Esta es la mayoría de terminales que existen.
Creo que no necesito explicar cómo grep, sed, etc. el punto es el color, ¿verdad?
ver más abajo, esto hará
WARN yellow
ERROR red
foo green
aquí hay un ejemplo:
kent$ echo "WARN
ERROR
foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'
Nota :\x1b
es hexadecimal para el ESC carácter (^V Esc ).
para ver el resultado:
Escribí TxtStyle, una pequeña utilidad para colorear registros. Defina expresiones regulares para resaltar en ~/.txts.conf
archivo:
[Style="example"]
!red: regex("error")
green: regex("\d{4}-\d\d-\d\d")
# ...
Y luego aplique los estilos:
txts -n example example.log
o también puede canalizar la salida
tail -f example.log | txts -n example
He estado usando una herramienta llamada grc para esto durante años. Funciona de maravilla. Viene con algunas plantillas bastante buenas para muchas salidas y formatos de registro estándar y es fácil definir uno propio. Un comando que uso a menudo es
grc tail -f /var/log/syslog
Colorea la salida de syslog para que sea fácil detectar errores (normalmente marcados en rojo.
Encuentre la herramienta aquí:
https://github.com/garabik/grc
(También está disponible como paquete para los sabores de Linux más comunes).