我在这里用“ansi2html.sh”http://www.pixelbeat.org/scripts/ansi2html.sh来完成我的工作。
ls -lrt /web/htdocs | tail -12 | ./ansi2html.sh --bg=dark >test.html
我在本地主机上使用anable,LinuxOS在多个主机上运行它,在每个远程主机上生成html文件,然后我最终将所有html文件从所有远程拉到我的本地anable服务器。
这适用于所有Linux系统。
然而,"ansi2html.sh"具有gawk
的依赖性,其不存在于一组生产AiX 6.1和7的系统上。
我得到这个错误:
./ansi2html.sh[38]: gawk: not found
由于我的AiX正在托管生产应用程序;不建议安装gawk
。
我不知道解决方案是否可以从所有AiX主机获取ls-lrt
的输出,然后将该输出提供给具有gawk
的本地anable linux服务器上的“ansi2html.sh”。不确定这是否会起作用,如果是这样,如何?注意:我希望输出具有与腻子终端提示相同的外观和感觉。
我可以为AiX找到一个解决方案,以便我可以使用anable从所有AiX主机获取具有ls-lrt
输出的html文件吗?
(已经写成注释)您可以使用ssh
在远程计算机上执行命令并在本地计算机上处理输出。例子:
ssh user@aixhost 'ls -lrt /web/htdocs | tail -12' |
./ansi2html.sh --bg=dark >test.html
标准输入也可以重定向,例如:
ssh user1@host1 'cd frompath; tar -czf - sendme/' |
ssh user2@host2 'cd topath; tar -xzf -'
注意:我对Anable一无所知,但我听说有了它,你几乎可以做任何没有它能做的事情。
使用aha Ansi超文本标记语言适配器执行此任务,效果非常好:
ls -lrt ~ | tail -12 | aha --black --title "Home list"> ls.html
使用html2text
的示例
curl https://stackoverflow.com/questions/60465150/how-to-convert-terminal-output-to-html-file-format | html2text | aha --black --title "the SO question"> txt.html
安装:
sudo apt install aha
sudo apt install html2text
这可以使用icon v
转换ANSII编码:强制编码从US-ASCII到UTF-8(icon v)
最后,所有这些也可以单独从php中完成,这应该可以在任何地方工作。使用php将html转换为文本的快速基础:
php -r 'echo htmlspecialchars(trim(strip_tags("<div> <b>Hello</b> world</div>")));'
// Hello world
ANSII使用REGEXes从php转换为文本:
$ansii = " |[0m [34m▓▓▓▓▓[0m";
echo preg_replace("/\x1B\[[0-9;]*[JKmsu]/","",$ansii);
https://stackoverflow.com/a/59060531/2494754