屏幕日志记录 - 如何省略交互式 shell 控制字符和提示符?

屏幕日志记录 - 如何省略交互式 shell 控制字符和提示符?

我的第一个问题之一。如果需要进一步的解释或信息,或者问题与此处不符,请发表评论

我正在使用 screen 自动启动服务器(本例中为“我的世界”服务器)。

我正在生成一个像这样的屏幕

screen -S 'server_1' -d -m "java -Xmx4G -Xms4G -jar spigot.jar"

然后设置日志文件并启用日志记录

screen -S 'server_1' -X logfile /srv/serverinstalls/1/stdout.txt
screen -S 'server_1' -X log

然后通过 NodeJS 读取 stdout.txt 的内容。

“cat stdout.txt”的输出看起来不错,但如果我用“less stdout.txt”查看文件,每一行都以

>ESC[2K^M

其中 ^M 和 ESC 是控制字符(^M 是 \r 字符)我认为这是屏幕记录服务器提供的交互式 shell 的提示符(以“>”开头)的方式

是否可以通过某种方式将 screen 命令配置为忽略这些控制字符而不记录 shell 的交互部分?

如果需要,我可以在每次读取日志文件时执行其他命令,或者使用 NodeJS 以某种方式替换不需要的字符,但提示在每个服务器上看起来并不相同。

我正在 Debian 9.9 (stretch) 上运行,屏幕为 4.05.00

答案1

下面有人尝试过吗?

ansifilter
less -r
strings

相关内容