J'ai écrit un script pour ça il y a des années. Vous pouvez facilement couvrir le cas de plusieurs couleurs en passant des invocations successives de highlight
les uns aux autres.
À partir du LISEZMOI :
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.
oui, il y a moyen de faire ça. Autrement dit, tant que votre terminal prend en charge les séquences d'échappement ANSI . C'est la plupart des terminaux qui existent.
Je pense que je n'ai pas besoin d'expliquer comment grep, sed, etc. est-ce que la couleur est bonne?
voir ci-dessous, cela fera
WARN yellow
ERROR red
foo green
voici un exemple :
kent$ echo "WARN
ERROR
foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'
Remarque :\x1b
est hexadécimal pour ESC caractère (^V Échap ).
pour voir le résultat :
J'ai écrit TxtStyle, un petit utilitaire pour colorier les logs. Vous définissez les expressions régulières à mettre en évidence dans ~/.txts.conf
fichier :
[Style="example"]
!red: regex("error")
green: regex("\d{4}-\d\d-\d\d")
# ...
Et puis appliquez les styles :
txts -n example example.log
ou vous pouvez également rediriger la sortie
tail -f example.log | txts -n example
J'utilise un outil appelé grc pour cela depuis des années. fonctionne comme un charme. Il est livré avec de très bons modèles pour de nombreuses sorties et formats de journaux standard et il est facile de définir les vôtres. Une commande que j'utilise souvent est
grc tail -f /var/log/syslog
Il colore la sortie syslog afin qu'il soit facile de repérer les erreurs (généralement marquées en rouge.
Trouvez l'outil ici :
https://github.com/garabik/grc
(il est également disponible sous forme de package pour les versions Linux les plus courantes).