Após a verificação, você pode enviar diretamente texto colorido no terminal usando awk
. Com o exemplo fornecido, você pode criar um arquivo de script do awk (por exemplo, displayLog.awk
) contendo o seguinte código:
# output INFO lines in cyan
$3 == "INFO" {
print "3[36m"$0"3[0m"
next
}
# don't display DBG lines
$3 == "DBG" {
next
}
# output WARNING lines in bright yellow
$3 == "WARNING" {
print "3[1;33m"$0"3[0m"
next
}
# output ERROR lines in bright red
$3 == "ERROR" {
print "3[1;31m"$0"3[0m"
next
}
# If you want to skip all other lines, comment next line
{print}
Em seguida, abra uma janela de terminal limpa, verifique se a tela é ilimitada (você pode exibir todas as 6000 linhas de uma só vez) e use-a desta maneira:
$ awk -f displayLog.awk log.txt
OR Como o usuário jlliagre sugeriu em sua solução, canalize-o para o modo bruto less
:
$ awk -f displayLog.awk log.txt | less -R
Isso deve fazer o truque! Você pode mexer nas cores e nas linhas que deseja exibir com base no código awk
da amostra na minha resposta. Mais sobre codificação por cores aqui .
EDITAR
Se você quiser que apenas uma palavra seja colorida em vez de uma linha inteira (por exemplo, você quer que o ERRO esteja apenas em vermelho) faça o seguinte:
$3 == "ERROR" {
$3 = "3[1;31m"$3"3[0m"
print
next
}