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 \
} \
}'
인용하다