로그를 “ANSI-fy”로 만드는 방법? 경향이있었습니다 (예 : NPM 및 다수의

최근에는 명령 행 도구가 로그 출력에 멋진 ANSI 색상을 사용하는 경향이있었습니다 (예 : NPM 및 다수의 nodejs 기반 도구, rvm, docker 및 기타 “현대”도구).

이렇게하면 화면 (*)을 읽는 것이 좋지만 다양한 원격 실행 도구 및 웹 기반 모니터링 솔루션과 같이 ANSI를 잘 처리하지 않는 전송 또는 로그 파일로 출력을 파이프하려는 경우 그리 좋지 않습니다. 좀 더 성숙한 도구는 출력이 TTY가 아니고 색상을 비활성화 할 때를 감지 할 수 있지만 새로운 “사용자 친화적 인”CLI를 사용하지 않는 경우가 많았습니다. 또 다른 프로세스를 통한 출력.

출력을 통해 sed를 s/\x1B\[[0-9]*\w//g수행하면 작업이 완료 되는 것 같지만 정규식을 붙여 넣은 모든 스크립트에 더 깔끔한 접근법이 있습니까?

(*) 최소한 도구가 어두운 배경 터미널에 짙은 빨간색으로 오류를 표시하려고 할 때까지.



답변

“ansifilter -p”는 당신에게 유용 할 것입니다 …

Fedora 저장소에 있습니다. -p는 일반 출력을 지정합니다.

Name        : ansifilter
From repo   : updates
Summary     : ANSI terminal escape code converter
URL         : http://www.andre-simon.de/doku/ansifilter/ansifilter.php
License     : GPLv3+
Description : Ansifilter handles text files containing ANSI terminal escape codes.
            : The command sequences may be stripped or be interpreted to generate formatted
            : output (HTML, RTF, TeX, LaTeX, BBCode).