Eu tenho o seguinte apelido:
alias mca_color='nawk '"'"'BEGIN { arr["Creating shared object"] = "1;31";} \
{ l = $0; for (pattern in arr) \
{ gsub(".*" pattern ".*", "3[" arr[pattern] "m&3[0m", l); } print l; }'"'"
Eu uso aliases semelhantes para colorir outras saídas (usando mais padrões, mas isso é apenas por exemplo).
Então, esse alias funciona, se eu usá-lo como:
$ echo "-ne Creating shared object test.so ..." | mca_color
o echo
é impresso em vermelho. MAS , quando tento:
$ make | mca_color
e até mesmo
$ make 2>&1 | mca_color
o resultado é não colorido (e sim, make
"imprime" o mesmo texto no final se sua execução).
Alguma idéia?
Eu pensei que poderia haver algo com processos filho ou algo assim, mas obviamente o pipe funciona - tentei com grep
, tentei redirecionar a saída para um arquivo, tudo funciona.
Mesmo isso não funciona (o texto é impresso, mas não colorido):
$ make 2>&1 | grep 'a' | mca_color