一个将ANSI转义(终端格式/颜色代码)转换为HTML的库


79

我正在寻找一个通过普通标签或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

无需将breaks转换为<br/>,只是我不知道的转义代码。我本人可以自己整理,但是我可能会错过一些重要的内容,例如下划线或弄乱背景颜色的工作方式。我宁愿坐在别人的代码之上。

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


好问题,有价值的答案!
cxw

Answers:



95

aha是一种C语言程序,可在Ubuntu软件包中找到,其位于http://ziz.delphigl.com/tool_aha.php或github https://github.com/theZiz/aha上,该输入采用带有终端颜色的输入管道或文件,并将(符合w3c要求的)HTML文件放入stdout。例:

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

要么

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

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

通过“ make”进行编译,然后将其放置在所需的位置。

获得反馈非常好。;-)


2
IcanDivideBy0遗漏了一些内容:Alexander Matthes帖子中的“德语链接”仍然有效。orig帖子中的“ ziz”之前有一个错误的'';使用ziz.delphigl.com/tool_aha.php此外,Alexander的链接指向:-位于ziz.delphigl.com/data/aha-src-0.4.4.tar.gz的源,以及-位于http://的其他debian软件包。 packages.debian.org/search?keywords=aha (删除在“:”之后添加的空格(“”),因为我没有特权每个帖子包含两个以上的链接。)
Der Schley,2012年

7
有一个适用于aha的ubuntu软件包
grep

1
只是想向其他人指出,此应用程序的github repo可以在os x上编译并正常运行。:)
masukomi

3
我刚刚为aha添加了Homebrew Pull Request。如果被接受,则brew update && brew install aha在Mac上安装aha将会很简单。
Nightscape

2
据我所知,似乎只能处理16种颜色。
Gringo Suave 2015年

20

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

另外,对于Bourne shell:ansi2html.sh


2
“受到Pixelbeat和21点的启发和发展”。我更好地喜欢它,并且-i选项很棒:)
DavidG 2014年

大!两者都可以处理256色。已投票。
jamadagni 2015年

pixelbeat ansi2html.sh对我来说效果很好!
cxw

不仅限于Bourne,还有可用的deb,yum,apt软件包:pypi.python.org/pypi/ansi2html/1.0.7
滚刀
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.