我在www.example.com上看到过类似的问题和答案stackoverflow.com
不幸的是,这对我不起作用。我有与前面问题中给出的例子相同的代码,但是“dumb”终端类型(TelnetClient telnet = new TelnetClient(“dumb”)是其他人的解决方案)没有过滤ANSI字符,所以我得到了这个:
最后登录时间:2016年5月20日10:09:21来自172.20.22.244
[01;33mteltest@vivadev[00m:[01;34 m ~[00 m $ ls ls测试[01;33mteltest@vivadev[00m:[01;34 m ~[00 m $ cd测试cd测试[01;33mteltest@vivadev[00m:[01;34 m ~/测试[亿美元
我需要一个可读的文件。有没有其他已知的解决方案,如编码outputStream,任何东西?
谢谢大家。
1条答案
按热度按时间9udxz4iz1#
传统的应用程序关注
TERM
,所以dumb
(不使用颜色)可以做你想做的事情。然而,有很多硬编码的应用程序(不需要评论)。如果你将程序的输出重定向到一个文件,其中一些会抑制颜色,例如。
但是许多(可能是大多数行为不端的程序)甚至忽略了这一点。要解决这些问题,您必须 * 过滤 * 结果,可以通过
sed
脚本或类似的程序,或者(例如)通过重定向或使用script
捕获命令的输出,然后 * 后处理 * 结果。例如,您可以使用以下脚本来完成此操作:示例中的大多数
^[
对都是文字ASCII转义字符,您无法选择/粘贴这些字符。原始的sed脚本如下:script2log该脚本的要点是它正常运行命令,然后回显筛选结果。