![屏幕日志记录 - 如何省略交互式 shell 控制字符和提示符?](https://linux22.com/image/154279/%E5%B1%8F%E5%B9%95%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%20-%20%E5%A6%82%E4%BD%95%E7%9C%81%E7%95%A5%E4%BA%A4%E4%BA%92%E5%BC%8F%20shell%20%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6%E5%92%8C%E6%8F%90%E7%A4%BA%E7%AC%A6%EF%BC%9F.png)
我的第一个问题之一。如果需要进一步的解释或信息,或者问题与此处不符,请发表评论
我正在使用 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