我想捕获我运行的 Windows 控制台应用程序的文本输出wineconsole --backend=curses ...
。
该应用程序本身只是使用无聊的 stdio。不幸的是,wine 对输出做了很多转义,因此在将其重定向到文件时它是无用的。
wineconsole
确实使用TERM
环境变量 - 例如,当我设置TERM=vt100
或时它的行为有点不同TERM=linux
。
我想,我正在寻找一个非常基本的TERM
,根本不进行屏幕清理。
或者模拟 tty 并将输出转换为普通文本的工具。
您可以尝试设置TERM=dumb
,如果wineconsole
不坚持全屏显示,这可能会起作用。
如果不是,如前所述,script
这是解决方案的一部分。这使您可以运行程序,透明地收集发送到屏幕的文本文件中的所有数据。
理解它是解决方案的其余部分。如果wineconsole
简单地从左到右/从上到下书写,则可以过滤掉转义符(包括颜色)并获得一些有用的纯文本。如果它在屏幕上跳来跳去,显示表格等,你将无法很好地做到这一点。但过滤掉逃逸事件(即使是部分)通常也比什么都没有好。
偶尔会出现过滤转义序列的主题,例如,我可以使用 unix utils 以编程方式将 \xe2\x80\x9cburn in\xe2\x80\x9d ANSI 控制代码写入文件吗?
\n\n进一步阅读:
\n\n