彩色尾巴:如何设置默认颜色

彩色尾巴:如何设置默认颜色

我有一个函数设置,可以使用 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

我不太擅长 shell 转义序列,但在我看来你是。因此,我认为您的用例缺少的是实现 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 \
            } \
         }'

参考

相关内容