Ich habe vor Jahren ein Drehbuch dafür geschrieben. Sie können den Fall mehrerer Farben leicht abdecken, indem Sie aufeinanderfolgende Aufrufe von highlight
leiten miteinander.
Aus der 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.
ja, es gibt eine Möglichkeit, dies zu tun. Das heißt, solange Ihr Terminal ANSI-Escape-Sequenzen unterstützt . Dies sind die meisten Terminals, die es gibt.
Ich denke, ich muss nicht erklären, wie man grep, sed usw. Punkt ist die richtige Farbe?
siehe unten, das macht
WARN yellow
ERROR red
foo green
Hier ist ein Beispiel:
kent$ echo "WARN
ERROR
foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'
Hinweis :\x1b
ist für ESC hexadezimal Zeichen (^V Esc ).
um das Ergebnis zu sehen:
Ich habe TxtStyle geschrieben, ein kleines Dienstprogramm zum Kolorieren von Protokollen. Sie definieren reguläre Ausdrücke zum Hervorheben in ~/.txts.conf
Datei:
[Style="example"]
!red: regex("error")
green: regex("\d{4}-\d\d-\d\d")
# ...
Und wenden Sie dann die Stile an:
txts -n example example.log
oder Sie können die Ausgabe auch leiten
tail -f example.log | txts -n example
Ich benutze dafür seit Jahren ein Tool namens grc. klappt wunderbar. Es enthält einige ziemlich gute Vorlagen für viele Standardprotokollausgaben und -formate, und es ist einfach, eigene zu definieren. Ein Befehl, den ich häufig verwende, ist
grc tail -f /var/log/syslog
Es färbt die Syslog-Ausgabe ein, sodass Fehler leicht zu erkennen sind (normalerweise rot markiert.
Finden Sie das Tool hier:
https://github.com/garabik/grc
(es ist auch als Paket für die gängigsten Linux-Varianten erhältlich).