Bash-Befehl Standardausgabe String Einfärben

Standard-Ausgabestrings in Bash-Befehlen einfärben

In Bash, der Befehlszeilensprache auf Linux-PCs und -Servern, stellt dieser Artikel vor, wie man Suchstrings oder spezifische Strings (wie Fehlermeldungen, Warnmeldungen usw.) in der Standardausgabe einfärbt (hervorhebt). Ein häufiges Problem bei der Ausgabe von Installationsbefehlen wie pip ist, wenn es einen Fehler gibt, aber Sie nicht herausfinden können, wo der Fehler ist. Wenn es stdout statt stderr ist, wird die Farbcodierung nicht automatisch durchgeführt...

Shou Arisaka
2 Min. Lesezeit
3. Okt. 2025

In Bash, der Befehlszeilensprache auf Linux-PCs und -Servern, stellt dieser Artikel vor, wie man Suchstrings oder spezifische Strings (wie Fehlermeldungen, Warnmeldungen usw.) in der Standardausgabe einfärbt (hervorhebt).

Ein häufiges Problem bei der Ausgabe von Installationsbefehlen wie pip ist, wenn es einen Fehler gibt, aber Sie nicht herausfinden können, wo der Fehler ist. Wenn es stdout statt stderr ist, sodass die Farbcodierung nicht automatisch durchgeführt wird, oder wenn der String nicht error ist, sondern failure, failed, lost oder solche Strings, wäre es zumindest einfacher zu finden, wenn sie hervorgehoben wären.

Machen Sie es so:

ls | tail -3 | GREP_COLOR='01;31' grep --color -P "zen|"
# oder
# ls | tail -3 | grep --color -P "zen|"

Ein Beispiel für das Hervorheben des Strings zen in Rot.

Der Schlüssel ist der zen|-Teil. Mit nur zen ist die Spezifikation von grep, dass Zeilen, die zen nicht enthalten, nicht ausgegeben werden. Dies verhindert das. Wie später erwähnt, funktioniert zen|$ anscheinend auch. (Unbestätigt) Wenn Sie explizit sein möchten, scheint diese Methode klarer.

Color specific words in Linux terminal whenever they appear - Stack Overflow

Image

Es scheint auch diese Methode zu geben. Allerdings bin ich mit egrep nicht vertraut, also habe ich es nicht überprüft. (Ich vermute, es ist wahrscheinlich standardmäßig Regex.)

tail -f myfwlog | GREP_COLOR='01;36' egrep --color=always 'ssh|$' | GREP_COLOR='01;31' egrep -i --color=always 'drop|deny|$'

bash - Grep output with multiple Colors? - Stack Overflow

Siehe auch dies:

egrep --color "\b(PASS|FAIL)\b|$"

How do you colorize only some keywords for a bash script? - Unix & Linux Stack Exchange

Sie können Bash-Farbcodes hier finden: 32 ist grün, 31 ist rot, usw.

bash:tip_colors_and_formatting - FLOZz’ MISC

Alias-Beispiel. Beachten Sie, dass Rot es schwer macht zu erkennen, welche Ausgabe es ist, daher ist die Farbe auf 36 Cyan gesetzt.

alias colorizeError="GREP_COLOR='01;36' grep --color -P 'deny|failure|failed|error|lost|'"

Diesen Artikel teilen

Shou Arisaka 3. Okt. 2025

🔗 Links kopieren