내 첫 번째 질문 중 하나입니다. 추가 설명이나 정보가 필요하거나 질문이 여기에 맞지 않는 경우 댓글을 남겨주세요.
나는 서버(이 경우에는 Minecraft 서버)를 자동으로 시작하기 위해 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 문자입니다). 이것이 화면 녹화 서버가 대화형 셸에 대한 프롬프트를 제공하는 방식인 것 같습니다(">"로 시작).
이러한 제어 문자를 무시하고 셸의 대화형 부분을 기록하지 않도록 화면 명령을 구성하는 방법이 있습니까?
필요한 경우 로그 파일을 읽을 때마다 다른 명령을 실행하거나 NodeJS를 사용하여 원치 않는 문자를 바꿀 수 있지만 프롬프트가 모든 서버에서 동일하게 표시되지는 않습니다.
저는 화면 4.05.00의 Debian 9.9(stretch)에서 실행 중입니다.
답변1
다음을 시도한 사람이 있습니까?
ansifilter
less -r
strings