螢幕日誌記錄 - 如何省略互動式 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

相關內容