In einer modernen Linux-Shell können viele Befehle (wie ls
) farbigen Text ausgeben.
Wenn Sie es mit anderen Befehlen weiterleiten, geht die Farbe verloren. Beispiel:
$ ls path
[... folders in blue, executables in green,..etc ]
$ ls path | grep foo
[... all in black and white]
Wie kann ich dafür sorgen, dass grep
im zweiten Teil der Pipe die ls
Farben (oder ein anderer ausgeführter Befehl) beachtet werden?
Antwort1
Sie können angeben, ls
dass die Ausgabe immer eingefärbt werden soll, da beim Schreiben in eine Pipe --color=auto
keine Farbe hinzugefügt wird.
Wenn Sie ls --color=always path | grep --color=never foo
dies tun, wird ls
Farbe hinzugefügt und grep
ein Ersetzen durch eigene Farben verhindert.
Antwort2
Beide Befehle haben ein --color=always
Argument.
$ ls --color=always | grep e