如何在保持原始文本颜色的同时使用 grep?

Z0q*_*Z0q 29 grep colors pipe escape-characters

例如,我有一个输出:

Hello, this is the output.
Run Code Online (Sandbox Code Playgroud)

(例如,假设为hello红色,the绿色,output紫色)。

现在,假设这是一个名为x.

如果我使用这个命令,输出变成白色:

x | grep hello
Run Code Online (Sandbox Code Playgroud)

我读过可以使用grep --color=always. 但是,这会更改颜色以突出显示我搜索的结果,而不是保留原始线条颜色。

我想保留原始线条颜色。如何在保留它们的同时使用 grep?

dai*_*isy 23

你可以这样做,

 x | grep --color=never hello
Run Code Online (Sandbox Code Playgroud)

要快速测试它,您可以这样做,

ls -l /etc/ --color=always | grep --color=never .
Run Code Online (Sandbox Code Playgroud)

  • 高票数表明这就是答案;但这是一个部分答案,一般不起作用。不过它对 ls 很好用。 (7认同)

JJo*_*oao 10

只是一个简单的技巧:当 grep 将输出发送到管道时,它也会切换到不改变颜色的模式

x | grep hello | cat
Run Code Online (Sandbox Code Playgroud)