Einfärben der gesamten Ausgabe vom Terminal

Einfärben der gesamten Ausgabe vom Terminal

Gibt es eine Möglichkeit, die gesamte Ausgabe meines Terminals individuell einzufärben? Beispiel: Wenn ich den Befehl eingebe: sudo apt-get update- erhalte ich eine Textspalte und möchte sie ROT einfärben, wenn der Text Wörter wie „FEHLER“ enthält, und GRÜN, wenn Wörter wie „FERTIG“ oder „FERTIG“ vorkommen.

Das ist nur ein Beispiel und mir ist klar, dass dies bei anderen Programmen zu Problemen mit der Farbausgabe führen kann. Ich bin nur neugierig, ob das möglich ist.

Ich verwende derzeit ZSH, akzeptiere aber Antworten für jeden Terminalemulator.

Antwort1

Sie können seddie durch Wortgrenzen getrennten Zeichenfolgen "ERROR", "DONE" und "FINISHED" durch dieselbe Zeichenfolge ersetzen, die inANSI-Farb-Escape-Sequenzen(Sie könnten der ~/.bashrcEinfachheit halber einen Alias ​​für den Befehl verwenden; wie Sie sehen, funktioniert dies in Zsh, aber da es das Terminal ist, das die Escape-Sequenzen interpretiert, würde dies in jeder Shell funktionieren, die in einem ANSI-/VT100-kompatiblen Terminal ausgeführt wird):

sudo apt-get update |& sed 's/\bERROR\b/\x1B[1;31m&\x1B[0m/; s/\bDONE\b/\x1B[1;32m&\x1B[0m/; s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/'
sudo apt-get update |&
    sed '
        s/\bERROR\b/\x1B[1;31m&\x1B[0m/
        s/\bDONE\b/\x1B[1;32m&\x1B[0m/
        s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/
    '

Bildschirmfoto

verwandte Informationen