Gibt es eine Möglichkeit Einfärben von Text zu halten durch das Rohr geleitet |
zu head
, tail
, less
usw.?
Gibt es eine Möglichkeit Einfärben von Text zu halten durch das Rohr geleitet |
zu head
, tail
, less
usw.?
Antworten:
Ich nehme an, Sie leiten von ls
und möchten die Terminal-Farbcodes beibehalten. Sie können sagen ls --color=always
(anstelle der Standardeinstellung von --color=auto
), dass die Codes erhalten bleiben, aber das garantiert nicht, dass das, an das Sie weiterleiten, weiß, wie man sie versteht.
Wenn Sie glark
stattdessen verwenden grep
, wird versucht, mit Farben anzuzeigen.
Wenn Sie less
mit -R
ihm versuchen , mit Farben angezeigt werden soll .
git
. Ich habe festgestellt, dass es eine ähnliche Konfiguration hat (z. B. git config color.diff always
), die die Färbung beibehält.
git diff
Ausgabe als Eingabe verwendet, unterbrochen wird, da immer die ANSI-Escape-Codes ausgegeben werden.
grep "string" file.txt | head
um sicherzustellen, dass das Ergebnis von grep farbig ist, habe ich es soeben ingrep "string" file.txt --color=always | head
Dies hängt von dem Programm ab, das die Ausgabe in der Pipe generiert.
head
, tail
Usw. sind nicht diejenigen , die Farben zu entfernen, ist es das Programm die Daten zu erzeugen , die in der Regel überprüfen , ob die Ausgabe an die Konsole (farbig), eine Datei oder ein Rohr (nicht gefärbt) wird
Ich fand eine weitere SU- Frage und Antwort, in der gezeigt wurde, wie Piping-Programme so ausgegeben werden, als würden sie Ausgaben an eine Konsole senden (eine Konsole mit emulieren unbuffer
).
color=auto
Modus zu halten (damit das Programm denkt, dass die Ausgabe an die Konsole anstatt an die Pipe geht)?
head
, tail
usw., feststellt, dass es verrohrt auf ein anderes Programm wird (so dass sie Daten ohne Farben erzeugen können, etc).
head
,tail
Usw. sind nicht diejenigen , die Farben zu entfernen, ist es das Programm die Daten zu erzeugen , die in der Regel überprüfen , ob die Ausgabe an die Konsole (farbig) wird, eine Datei oder ein Rohr (nicht gefärbt).