有什么办法可以让传递给 head、tail、less 等的文本着色?

Tim*_*kov 33 linux pipe gnome-terminal

有什么办法让文字的着色通过管道传送|headtailless,等?

pho*_*ogg 21

我认为您正在使用管道ls并希望保留终端颜色代码。您可以说ls --color=always(而不是默认的--color=auto),这将保留代码,但这并不能保证您要传递的内容知道如何理解它们。

如果使用glark而不是grep它会尝试用颜色显示。

如果你使用lesswith-R它会尝试用颜色显示。

  • 我正在从`git` 管道。我发现它有类似的配置(例如`git config color.diff always`)可以保持着色。 (9认同)
  • 我将它用于 grep:`grep "string" file.txt | head` 以确保 grep 的结果是彩色的我只是将其更改为 `grep "string" file.txt --color=always | 头` (2认同)
  • `git Branch` 也有一个 `--color=always` 选项。 (2认同)

Kur*_*tal 16

这取决于在管道中生成输出的程序。

head,tail等不是删除颜色的程序,它是生成数据的程序,通常检查输出是否进入控制台(彩色)、文件或管道(未彩色)

我发现另一个 SU Q&A展示了如何欺骗管道程序输出,就好像它们将输出发送到控制台一样(模拟控制台unbuffer

  • @KurzedMetal 程序(例如`head`、`tail` 等)如何检测到它正在通过管道传输到另一个程序(以便它可以生成没有颜色的数据等)。 (2认同)