BEARBEITEN:
Ich möchte empfehlen, dass das Parsen von Farben eine allgemein schlecht durchdachte Idee ist.
Ein Grund, warum ich es wollte, war, dass ich es sowohl analysieren als auch in meiner eigenen Skriptausgabe weitergeben kann. Das ist ... okay, aber es wäre wahrscheinlich vernünftiger, Porzellan oder ähnliches zu verwenden und die farbigen Teile selbst wieder aufzubauen!
Die ursprüngliche Frage folgt.
Ich mag es, Farben zu sehen, weil meine Skripte (bisher) robust genug sind, um die Farbcodes zu verarbeiten. Es scheint, als würde ich hier gegen den Strich gehen, aber ich verstehe ehrlich gesagt nicht, was die große Sache ist, Dinge wie Escape-Codes in Skripten analysieren zu müssen. Wenn Farben für die interaktive Verwendung hilfreich sind, warum helfen sie dann nicht bei der Verwendung von Skripten, bei denen ich möglicherweise Daten aggregiere und noch mehr Daten zusammenfasse als manuell? Wären Farben nicht noch wichtiger ?
Wie auch immer, ich habe ein hübsches kleines Shell-Skript, das ich geschrieben habe und das Munges git status
ausgibt, und ich möchte nur, dass dieses Skript die Farben intakt hält. Meine globale Git-Konfiguration ist so eingestellt, dass die Listen der geänderten und nicht verfolgten Dateien im Git-Status in Farbe angezeigt werden. Leider git diff
gibt es im Gegensatz dazu keine Möglichkeit, Farbe für zu erzwingengit status
, die ich finden kann.
Um ganz klar zu sein, ist dies das Problem:
$ git status
erzeugt eine perfekte Ausgabe, aber (Auszug aus meinem Skript folgt)
git status | sed "s/^#/\x1b[34m#[0m/"
erzeugt keine farbige git status
Ausgabe, und Sie können hier sogar sehen, dass ich die führenden Hash-Zeichen explizit in Blau konvertiere, da dies dazu beiträgt, die verschiedenen Ausgabebereiche meines Skripts hervorzuheben.
Weiß jemand, wie man es dazu bringt, die Farben zu löschen? Gibt es vielleicht ein Standardprogramm, das ich verwenden kann und das als STDIN / STDOUT-Pipe "Fake Terminal" verwendet werden kann? Tatsächlich arbeite ich auch an einem pty-Pseudoterminal-Tool, damit ich es sicherlich für diesen Zweck nutzen kann, aber es ist eine ziemlich hartnäckige Lösung (und noch nicht einsatzbereit, da ich sie noch nicht fertig gebaut habe).