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

max*_*zig 5 wine tty console

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

该应用程序本身只是使用无聊的 stdio。不幸的是,wine 对输出做了很多转义,因此在将其重定向到文件时它是无用的。

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

我想,我正在寻找一个非常基本的TERM,根本不进行屏幕清理。

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

Tho*_*key 5

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

\n\n

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

\n\n

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

\n\n

偶尔会出现过滤转义序列的主题,例如,我可以使用 unix utils 以编程方式将 \xe2\x80\x9cburn in\xe2\x80\x9d ANSI 控制代码写入文件吗?

\n\n

进一步阅读:

\n\n\n