有没有办法将带有控制字符的putty“All session output”日志转换为更具人性化的“可打印输出”日志?

我们有一个内部的承包商帮助进行某种产品的configuration,我们试图通过他为我们设置的腻子日志来查看,而不是使用“可打印输出”,而是使用“所有会话输出”,其中包括每个包括“BS”等的击键,使得日志非常难以阅读,因为他有许多错别字。 即:

[ESC]] 0; root @ host:〜[BEL] [root @ host〜]#itm,cm [BS] [BS] [ESC] [K [BS] [ESC] [Kcmd agent starp [BS] t

有什么方法可以智能地去除这些控制字符,以便最终的结果是一个人类可读的文件,就像你在“可打印的输出”格式中看到的那样?

谢谢你的build议。 我们的主要观点是[BS]控制字符,这将变成:

ls -pg [BS] [BS] al P [BS] | 格鲁[BS] P博士

成:

ls -al | grep博士

任何想法如何可以完成?

  • 无法在PuTTY上input或打印中文
  • PuTTY pscp目录列表 - 你可以指定不同的文件date/时间格式?
  • 在打开putty会话的相同文件夹中打开winscp
  • 如何隧道Windows远程桌面通过SSH使用Linux的盒子?
  • 如何以编程方式将腻子日志转换为可读的可search文件?
  • 使用Korn shell将PuTTYed到AIX框中时,删除键不起作用
  • 2 Solutions collect form web for “有没有办法将带有控制字符的putty“All session output”日志转换为更具人性化的“可打印输出”日志?”

    在putty中启用非常大的回滚,捕获日志文件,并将结果复制并粘贴到新文件中。

    虽然不完美,这个sedfilter会给你一个起点。

     sed -r 's/(\[[AZ]+\]?|\]0;)//g' escapes.log > noescapes.log 

    如果我通过这个filter来input你的样本,我会得到:

     root@host:~[root@host ~]# itm,cmcmd agent starpt 

    一个依靠命令/脚本parsing出实际terminal代码的解决scheme会更加优雅,这更像是一个“快速修复”。

    那些正在尝试学习它们的正则expression式细分:

    • 用于replace的外括号( |字符是OR)
    • \[\]都是方括号,所以它们不会被解释为字符类。
    • [ ]包含一个字符类。 [AZ]是匹配任何大写字母的类。
    • +表示匹配“以前的一个或多个primefaces”。 以前的primefaces是字符类,所以“一个或多个大写字母”。
    • ? 表示之前的primefaces是可选的。 在这种情况下,可选的primefaces是\]
    • 在这一点上的合并意思是:“一个或多个大写字母出现在文字前面[,可以select后缀为文字]”
    • | 字符是OR的开始。
    • \]0; 匹配'literal']后缀为0;`。

    replacestring是空的,所以他们被删除。 /g告诉sed不要停止在第一场比赛。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.