将 tty 终端输出转换为纯文本

将 tty 终端输出转换为纯文本

我想捕获我运行的 Windows 控制台应用程序的文本输出wineconsole --backend=curses ...

该应用程序本身只是使用无聊的 stdio。不幸的是,wine 对输出进行了大量转义,因此在将其重定向到文件时毫无用处。

wineconsole确实使用环境变量 - 例如,当我设置或 时,TERM它的行为略有不同。TERM=vt100TERM=linux

我想,我正在寻找一种非常基本的TERM方法,根本不需要清除屏幕。

或者是一个模拟 tty 并将输出转换为普通文本的工具。

答案1

您可以尝试设置TERM=dumb,如果wineconsole不坚持全屏显示,这可能会起作用。

如果不是,如前所述,script这是解决方案的一部分。这使您可以运行程序,透明地收集发送到屏幕的文本文件中的所有数据。

理解它是解决方案的其余部分。如果wineconsole简单地从左到右/从上到下书写,则可以过滤掉转义符(包括颜色)并获得一些有用的纯文本。如果它在屏幕上跳来跳去,显示表格等,你将无法很好地做到这一点。但过滤掉逃逸事件(即使是部分)通常也比什么都没有好。

过滤转义序列的主题偶尔会出现,例如,我可以使用 unix utils 以编程方式将 ANSI 控制代码“烧入”到文件中吗?

进一步阅读:

相关内容