我怎样才能让 grep 尊重管道上的颜色?

我怎样才能让 grep 尊重管道上的颜色?

在现代 Linux shell 中,许多命令(如ls)可以输出彩色文本。

如果您将其与其他命令一起传输,则会丢失颜色。例如:

$ ls path
[... folders in blue, executables in green,..etc ]

$ ls path | grep foo
[... all in black and white]

我怎样才能使grep管道的第二部分尊重ls颜色(或执行的任何其他命令)?

答案1

您可以告诉ls始终为输出着色,因为当它写入管道时--color=auto不会添加颜色。

如果这样做,ls --color=always path | grep --color=never foo它将添加ls颜色,并防止grep用其自己的颜色替换。

答案2

两个命令都有一个--color=always参数。

$ ls --color=always | grep e

相关内容