复制彩色终端(模拟器)文本输出并粘贴为 HTML?

复制彩色终端(模拟器)文本输出并粘贴为 HTML?

我在学习Linux的时候想写一些笔记(HTML格式),当我需要记录彩色的终端文本输出时,我希望终端文本的颜色能够保留在我的笔记中,例如:

Note 1: Test

The output of xx command is

<pre>
[root@webserver ~]# ll /
total 100
drwxrwxrwt.   7 root root  4096 8月  24 12:22 <span style='background-color:green; color:blue;'>tmp</span>
drwxr-xr-x.  14 root root  4096 7月  19 21:20 <span style='color:blue;'>usr</span>
</pre>

我可以手动在纯文本周围添加 HTML 代码包装器,但我希望有一种自动的方法来实现这一点。

目前,我正在使用 Windows 上的 putty 连接到远程 CentOS Linux 服务器。

答案1

使用脚本实用程序将终端输出捕获到文件(包括 ANSI 颜色控制字符),然后使用ansi2html脚本。例如:

inigo:tmp> script
Script started, file is typescript
inigo:tmp> ls
#
# lots of colour output
# 
inigo:tmp> exit
exit
Script done, file is typescript
inigo:tmp> cat typescript  | ansi2html.sh > typescript.html

如果使用 PuTTY,“所有会话输出”登录选项也将保留 ansi 颜色代码。

作为替代方案ansi2html,你可以使用aha——Ansi HTML 适配器

答案2

七年零九个月后,putty 仍然不支持“复制为 HTML”功能。

由于 Windows XP 的终止使用,我已经将 Fedora Linux 作为我的主要工作操作系统大约六年零九个月了。

现在,gnome 终端v3.x 已添加 '复制为 HTML' 功能 3 年(git 提交 GNOME 错误报告),并且它的工作方式与我预期的一样,所以如果需要的话,我将使用 gnome-terminal 来完成这项工作。请参阅下面的屏幕截图。


GNOME 终端 3.36.1.1 窗口

GNOME 终端 3.36.1.1 窗口


从 GNOME 终端复制的 HTML 代码

<pre><font color="#00D700">root</font> @ <span style="background-color:#005FAF"><font color="#00005F">tx300</font></span> <font color="#00FFFF">/tmp</font> <span style="background-color:#AF00AF"><font color="#FF0A0A">2020-05-29 16:34:00</font></span>
# ls /usr/bin/vi*
<font color="#00FFFF">/usr/bin/vi</font>        <font color="#00D700">/usr/bin/virt-alignment-scan</font>      <font color="#00D700">/usr/bin/virt-edit</font>            <font color="#00D700">/usr/bin/virt-ls</font>            <font color="#00D700">/usr/bin/virt-tail</font>
<font color="#00FFFF">/usr/bin/view</font>      <font color="#00D700">/usr/bin/virt-builder</font>             <font color="#00D700">/usr/bin/virt-filesystems</font>     <font color="#00D700">/usr/bin/virt-make-fs</font>       <font color="#00D700">/usr/bin/virt-tar-in</font>
<font color="#00D700">/usr/bin/viewres</font>   <font color="#00D700">/usr/bin/virt-builder-repository</font>  <font color="#00D700">/usr/bin/virt-format</font>          <font color="#00D700">/usr/bin/virt-manager</font>       <font color="#00D700">/usr/bin/virt-tar-out</font>
<font color="#00D700">/usr/bin/vim</font>       <font color="#00D700">/usr/bin/virt-cat</font>                 <font color="#00D700">/usr/bin/virtfs-proxy-helper</font>  <font color="#00D700">/usr/bin/virt-pki-validate</font>  <font color="#00D700">/usr/bin/virt-win-reg</font>
<font color="#00FFFF">/usr/bin/vimdiff</font>   <font color="#00D700">/usr/bin/virt-copy-in</font>             <font color="#00D700">/usr/bin/virt-get-kernel</font>      <font color="#00D700">/usr/bin/virt-qemu-run</font>      <font color="#00D700">/usr/bin/virt-xml-validate</font>
<font color="#00D700">/usr/bin/vimdot</font>    <font color="#00D700">/usr/bin/virt-copy-out</font>            <font color="#00D700">/usr/bin/virt-host-validate</font>   <font color="#00D700">/usr/bin/virt-rescue</font>        <font color="#00D700">/usr/bin/vi.vi</font>
<font color="#00D700">/usr/bin/vimtutor</font>  <font color="#00D700">/usr/bin/virt-customize</font>           <font color="#00D700">/usr/bin/virt-index-validate</font>  <font color="#00D700">/usr/bin/virt-resize</font>
<font color="#00FFFF">/usr/bin/vimx</font>      <font color="#00D700">/usr/bin/virt-df</font>                  <font color="#00D700">/usr/bin/virt-inspector</font>       <font color="#00D700">/usr/bin/virt-sparsify</font>
<font color="#00D700">/usr/bin/virsh</font>     <font color="#00D700">/usr/bin/virt-diff</font>                <font color="#00D700">/usr/bin/virt-log</font>             <font color="#00D700">/usr/bin/virt-sysprep</font>
<font color="#00D700">root</font> @ <span style="background-color:#005FAF"><font color="#00005F">tx300</font></span> <font color="#00FFFF">/tmp</font> <span style="background-color:#FF87AF"><font color="#8A8A8A">2020-05-29 16:34:03</font></span>
#
</pre>

HTML 渲染结果(Firefox 76.0.1)

HTML 渲染结果(Firefox 76.0.1)

相关内容