최근에는 명령 행 도구가 로그 출력에 멋진 ANSI 색상을 사용하는 경향이있었습니다 (예 : NPM 및 다수의 nodejs 기반 도구, rvm, docker 및 기타 "현대"도구).
이렇게하면 화면 (*)을 읽는 것이 좋지만 다양한 원격 실행 도구 및 웹 기반 모니터링 솔루션과 같이 ANSI를 잘 처리하지 않는 전송 또는 로그 파일로 출력을 파이프하려는 경우 그리 좋지 않습니다. 좀 더 성숙한 도구는 출력이 TTY가 아니고 색상을 비활성화 할 때를 감지 할 수 있지만 새로운 "사용자 친화적 인"CLI를 사용하지 않는 경우가 많았습니다. 또 다른 프로세스를 통한 출력.
출력을 통해 sed를 s/\x1B\[[0-9]*\w//g
수행하면 작업이 완료 되는 것 같지만 정규식을 붙여 넣은 모든 스크립트에 더 깔끔한 접근법이 있습니까?
(*) 최소한 도구가 어두운 배경 터미널에 짙은 빨간색으로 오류를 표시하려고 할 때까지.
2
참조 : unix.stackexchange.com/questions/14684/... - unix.stackexchange.com/questions/111899/... stackoverflow.com/questions/17998978/... superuser.com/questions/380772/... - 4+ 질문 사이 이상 3 개 사이트에서 3 년 동안 정규식 교체 / 제거 도구를 사용하는 것에 대한 답변을 얻었습니다. 더 좋은 것이 없을 것 같아요.
—
Zoredache
토론을 위해 보이는 유일한 것은 어떤 정규식이 어떤 상황에 가장 적합한 지입니다.
—
Zoredache
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?
-정리 필터를 '/ usr / local / bin / stripttycolor.sh` 또는 다른 파일로 저장 하시겠습니까? 그렇게하면 정규 표현식을 단일 위치로 제한합니까?
출력을 파일에 기록 할 것임을 알면 가장 쉬운 방법은
—
Moshe Katz
--no-color
플래그 로 실행하는 것입니다 (적어도 NPM의 경우) . 다른 많은 명령들도 비슷한 플래그를 가지고 있습니다.
@MosheKatz : 불행히도 예를 들어 모든 명령이 수행되는 것은 아닙니다
—
거스
bower
.