O padrão y, --color
apenas colore a saída se estiver indo para um terminal. Se a saída está indo para um pipe, o grep assume que ele será analisado por um programa que será confundido pelas seqüências de escape extras que o grep insere para colorir a saída. Para colorir a saída, mesmo se ela estiver indo para um pipe, passe --color=always
para todas as chamadas do grep.
GREP_COLORS='mt=01;32' grep --color=always Dwhite VPNsyslog-2016 |
GREP_COLORS='mt=01;31' grep --color=always date |
GREP_COLORS='mt=01;34' grep --color=always time
Observe que o grep só imprimirá linhas correspondentes. No seu exemplo, os pipelines imprimirão apenas linhas contendo Dwhite
e date
e time
. Se você quiser imprimir todas as linhas, você pode dizer a cada chamada grep para procurar o que você está procurando ou a string vazia; cada linha contém a string vazia, então cada linha terminará na saída.
GREP_COLORS='mt=01;32' grep --color=always -e '' -e Dwhite VPNsyslog-2016 |
GREP_COLORS='mt=01;31' grep --color=always -e '' -e date |
GREP_COLORS='mt=01;34' grep --color=always -e '' -e time
ou com expressões regulares:
GREP_COLORS='mt=01;32' grep --color=always -E '|Dwhite' VPNsyslog-2016 |
GREP_COLORS='mt=01;31' grep --color=always -E '|date' |
GREP_COLORS='mt=01;34' grep --color=always -E '|time'
Mas, a menos que você esteja preso em uma máquina em que realmente não queira instalar mais nada, é melhor usar uma ferramenta projetada para colorir a saída, como as listadas em casas answer or in esta discussão .