Gibt es eine Möglichkeit Einfärben von Text zu halten durch das Rohr geleitet |
zu head
, tail
, less
usw.?
linux
pipe
gnome-terminal
Timofey Gorshkov
quelle
quelle
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).Antworten:
Ich nehme an, Sie leiten von
ls
und möchten die Terminal-Farbcodes beibehalten. Sie können sagenls --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 verwendengrep
, wird versucht, mit Farben anzuzeigen.Wenn Sie
less
mit-R
ihm versuchen , mit Farben angezeigt werden soll .quelle
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) wirdIch 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
).quelle
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).