84

我正在寻找一个通过普通标签或 CSS 将 ANSI 转义序列转换为 HTML 颜色的代码库。例如,可以转换它的东西:

ESC[00mESC[01;34mbinESC[00m
ESC[01;34mcodeESC[00m
ESC[01;31mdropbox-lnx.x86-0.6.404.tar.gzESC[00m
ESC[00mfooESC[00m

进入这个:

<span style="color:blue">bin</span>
<span style="color:blue">code</span>
<span style="color:red">dropbox-lnx.x86-0.6.404.tar.gz</span>
foo

将中断转换为 <br/> 不是必需的,它只是我不知道的转义码。我可以自己破解它,但我可能会错过一些重要的东西,比如下划线或搞乱背景颜色的工作方式。我宁愿只是坐在别人的代码之上。

是否存在这样的工具(命令行 linux)或库(最好是 perl、python 或 ruby​​)?

4

3 回答 3

100

aha是一个 C 语言程序,在 Ubuntu 包中可用,在http://ziz.delphigl.com/tool_aha.php或在 github https://github.com/theZiz/aha上,它接受终端颜色的输入管道或文件,并将(符合 w3c 的)HTML 文件放入标准输出。例子:

ls --color=always | aha > ls-output.htm

或者

ls --color=always | aha --black > ls-output.htm

具有黑色背景的类似终端的外观。

通过“make”编译它并将它放在你想要的任何地方。

获得反馈会很棒。;-)

于 2010-06-04T16:06:29.783 回答
21

仍在维护的成熟 Python 库和命令行工具:pycontribs/ansi2html

或者,对于 Bourne shell:ansi2html.sh

于 2013-11-29T15:36:37.390 回答
17

似乎有一个 HTML::FromANSI Perl 模块

于 2008-10-31T02:31:00.283 回答