将彩色输出重定向到文件

将彩色输出重定向到文件

我想将彩色终端输出存储到文件(可能是 .rtf 或其他文件)。在 OSX 中,我可以使用 Textedit 手动将其复制并粘贴到 .rft 文件中,但我想使用以下方法自动存储它:

command &> somefile.rtf

将输出存储在 .txt 中会保留颜色标签,但它们是无用的,因为它们只能从终端看到(使用 cat)。

有没有办法做到这一点?

我读过类似问题但它并没有解决将输出存储在支持颜色(并且可以在没有终端的情况下打开)的文件格式的问题。

答案1

由于颜色是按照 ANSI 序列存储的,因此您可以创建一个脚本来翻译 每一个...或者您可以使用刚刚制作的脚本。

例如存在脚本 ansi2html [v0.15v0.23],您可以将其设为可执行文件,将其放在路径的目录中(通常~/bin),然后使用

command | ansi2html.sh > file.html

然后,如果您需要不同的格式,您可以转换它或者重写脚本。

请注意,有些命令知道其输出是否通过管道传输。
例如,ls 如果通过管道传输,可能会更改其输出。

相关内容