명령 결과를 콘솔과 파일로 출력하고 싶습니다. 이를 위해 나는 tee
. 사용해 보았는데 sed -e 's/\x1b\[[0-9;]*m//g'
착색과 ESC가 모두 제거되었습니다.
답변1
아마도 파일을 캡처한 다음 파일을 사후 처리하여 완료되면 원하지 않는 문자를 제거할 것입니다.
이 작업을 즉시 수행해야 하고 >(...)
프로세스 대체( )가 포함된 셸을 사용하는 경우 다음 중 하나를 사용하여 다음과 같이 파일 출력을 필터링할 수 있습니다 tee
.
some-command | tee >( sed -e 's/\x1b[[0-9;]m//g' >file )
some-command
터미널에 연결되지 않은 경우에도 컬러 텍스트가 계속 출력된다고 가정 하면 sed
명령을 통해 출력을 필터링한 다음 수정된 출력을 이름이 지정된 파일로 전달합니다 file
. 수정되지 않은 출력도 some-command
예상대로 표준 출력으로 전달됩니다.tee
프로세스 교체 없이 sed
다음과 같이 단독으로 사용할 수 있습니다.
some-command | sed -n -e p -e 's/\x1b[[0-9;]m//g' -e 'w file'
sed
이는 수정되지 않은 행을 표준 출력( 사용 p
)으로 출력한 다음 대체 표현식을 사용하여 수정하는 데 사용됩니다 . 마지막으로 수정된 행은 file
명령으로 작성 됩니다 w
. 끄기를 사용하여 스크립트 끝 부분에서 수정된 줄의 기본 출력을 편집합니다 -n
.