컬러 테일: 기본 색상을 설정하는 방법

컬러 테일: 기본 색상을 설정하는 방법

ANSI 이스케이프 시퀀스와 sed를 사용하여 tail 명령에 색상을 제공하는 기능 설정이 있습니다.

function colortail {
tail -f -n30 $1 | sed -e 's/\(.*MINOR.*\)/\o033[93m\1\o033[39m/' -e 's/.*MAJOR.*/\o033[38;5;202m&\o033[m/' 
}

미리 정의된 문자열과 일치하지 않는 다른 행이 다른 색상을 갖도록 어떻게 설정합니까? "기본 색상"처럼요? 와일드카드를 사용할 수 있는 방법이 있나요? 밝고 대담한 흰색을 원한다면 이와 같은 것을 추가하면 될까요?

-e 's/\(.*"".*\)033[1;37m\033[m"

답변1

나는 쉘 이스케이프 시퀀스에 능숙하지 않지만 당신은 그런 것 같습니다. 따라서 귀하의 사용 사례에서 누락된 것은 if/else 유형 논리를 구현하는 것입니다. 다음 방법 중 하나를 사용할 수 있습니다.

sed -e '\
        /.*MINOR.*/{ # If .*MINOR.* is matched \
            # Code to set MINOR color \
        } \
        /.*MINOR.*/!{ # If .*MINOR.* is not matched \
            /.*MAJOR.*/ { # If .*MAJOR.* is matched \
            # Code to set MAJOR color \
            } \
            /.*MAJOR.*/!{ # If .*MAJOR.* is not matched \
            # Code to set the default color \
            } \
         }'

인용하다

관련 정보