我的第一个问题之一。如果需要进一步的解释或信息,或者问题与此处不符,请发表评论
我正在使用 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