如何通过管道命令显示颜色到less?

jcu*_*bic 0 less colors

当我使用:

msgattrib --untranslated pl.po
Run Code Online (Sandbox Code Playgroud)

要从 po 文件中查看未翻译的字符串,我有彩色字符串,但在我使用时没有:

msgattrib --untranslated pl.po | less
Run Code Online (Sandbox Code Playgroud)

jcu*_*bic 5

msgattrib仅当从真实终端执行时才显示颜色。您可以使用unbuffer命令的一部分,expect使其msgattrib认为它是从真实终端执行的,然后使用-r选项来处理 ANSI 转义less

unbuffer msgattrib --untranslated pl.po | less -r
Run Code Online (Sandbox Code Playgroud)

您可以在任何基于 tty 的存在产生颜色(ANSI 转义码)的命令中执行此操作。