Shell

螢幕記錄 - 如何省略互動式外殼控製字元和提示?

  • May 27, 2019

我的第一個問題之一。如果需要進一步的解釋或資訊,或者問題不應該在這裡,請發表評論

我正在使用螢幕自動啟動伺服器(本例中為 minecraft 伺服器)。

我正在產生一個像

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 的提示(以“>”開頭)的方式

是否有某種方式可以將螢幕命令配置為省略這些控製字元而不記錄 shell 的互動部分?

如果需要,我可以在每次讀取日誌文件時執行其他命令,或者使用 NodeJS 以某種方式替換不需要的字元,但每個伺服器上的提示看起來並不相同。

我在螢幕 4.05.00 的 Debian 9.9 (stretch) 上執行

有沒有試過下面的人?

ansifilter
less -r
strings

引用自:https://unix.stackexchange.com/questions/521277