터미널의 모든 출력 색상 지정

터미널의 모든 출력 색상 지정

내 터미널의 모든 출력을 개인화된 방식으로 색칠할 수 있는 방법이 있습니까? 예: 명령을 실행하면: sudo apt-get update- 텍스트 열을 얻을 수 있으며 원하는 것은 이 텍스트에 "ERROR"와 같은 단어가 있으면 빨간색으로 색상을 지정하고 "DONE" 또는 "FINISHED와 같은 단어는 녹색으로 표시하는 방법입니다. ".

이는 단지 예일 뿐이며 이것이 다른 프로그램의 컬러 출력과 혼동될 수 있다는 것을 이해합니다. 이것이 가능한지 궁금합니다.

현재 ZSH를 사용하고 있지만 모든 터미널 에뮬레이터에 대한 답변을 수락합니다.

답변1

sed단어 경계로 구분된 "ERROR", "DONE" 및 "FINISHED" 문자열을 다음과 같은 문자열로 바꾸는 데 사용할 수 있습니다.ANSI 색상 이스케이프 시퀀스(편의를 위해 명령에 별칭을 붙일 수 있습니다 ~/.bashrc. 보시다시피 이것은 Zsh에서 작동하지만 이스케이프 시퀀스를 해석하는 터미널이기 때문에 ANSI/VT100 호환 터미널에서 실행되는 모든 셸에서 작동합니다):

sudo apt-get update |& sed 's/\bERROR\b/\x1B[1;31m&\x1B[0m/; s/\bDONE\b/\x1B[1;32m&\x1B[0m/; s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/'
sudo apt-get update |&
    sed '
        s/\bERROR\b/\x1B[1;31m&\x1B[0m/
        s/\bDONE\b/\x1B[1;32m&\x1B[0m/
        s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/
    '

스크린샷

관련 정보