Esses caracteres de escape marcam partes da saída que são coloridas se não forem canalizadas.
Baseado em esta questão muito semelhante e sua resposta eu sugiro que você tente para usar less -R
em vez de simples less
.
Se você quiser usar outras ferramentas além de less
, poderá remover as sequências com sed 's/\x1b\[[0-9]*m//g'
, conforme discutido em esta resposta.
Seu comando completo seria então
svn diff | sed 's/\x1b\[[0-9]*m//g' | othertool
No OS X, os códigos de escape são diferentes, portanto, o padrão deve ser alterado. Também parece ser o caso que (usando OS X) a seqüência de escape \x1b
funcionará com perl
, mas não com sed
. Uma expressão resultante que funciona tanto para o Linux quanto para o OS X é:
svn diff | perl -pe "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mK]//g" | othertool