如何使 grep 尊重管道上的颜色?

Zhe*_*hen 7 linux bash

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

如果你用其他命令管道它,你会失去颜色。例如:

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

$ ls path | grep foo
[... all in black and white]
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*ouf 10

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

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

  • @Sridhar-Sarnobat `git 分支 --color=always | grep --color=never -v垃圾桶`对我有用,如果不适合你,请提出一个新问题 (2认同)