Wie kann ich erreichen, dass grep die Farben einer Pipe berücksichtigt?

Wie kann ich erreichen, dass grep die Farben einer Pipe berücksichtigt?

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 grepim zweiten Teil der Pipe die lsFarben (oder ein anderer ausgeführter Befehl) beachtet werden?

Antwort1

Sie können angeben, lsdass die Ausgabe immer eingefärbt werden soll, da beim Schreiben in eine Pipe --color=autokeine Farbe hinzugefügt wird.

Wenn Sie ls --color=always path | grep --color=never foodies tun, wird lsFarbe hinzugefügt und grepein Ersetzen durch eigene Farben verhindert.

Antwort2

Beide Befehle haben ein --color=alwaysArgument.

$ ls --color=always | grep e

verwandte Informationen