
我的第一個問題之一。如果需要進一步的解釋或訊息,或者問題與此處不符,請發表評論
我正在使用 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