Cauda colorida: como definir a cor padrão

0

Eu tenho uma configuração de função para fornecer cor ao comando tail usando seqüências de escape ANSI com sed.

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

Como posso configurá-lo para que outras linhas que não correspondam às minhas sequências predefinidas estejam em outra cor? Como uma "cor padrão"? Existe uma maneira de curinga isso? Adicionaria algo como este trabalho se eu quisesse branco brilhante / negrito?

-e 's/\(.*"".*\)033[1;37m3[m"
    
por user53029 06.07.2016 / 21:42

1 resposta

1

Eu não sou muito bom com sequências de escape de shell, mas parece-me que você é. Eu suponho que o que você está perdendo para o seu caso de uso, portanto, é implementar a lógica if / else-type. Aqui está uma maneira de fazer isso:

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 \
            } \
         }'

Referência

por 06.07.2016 / 22:39