Redirecionando sem cor [duplicado]

3

Como desabilito todos os códigos de cores ao redirecionar para o arquivo?

Eu perguntei anteriormente como redirecionar tudo para o arquivo , agora eu quero saber como redirecionar sem cores.

Então, em vez de:

^[(B^[[m^[[1m^[[31m:: ^[(B^[[m^[[1mDaemon script ^[(B^[[m^[[1m^[[31mntpd^[(B^[[m^[[1m does not exist or is not executable.^[(B^[[m

Estou ansioso para alcançar a clareza:

:: Daemon script ntpd does not exist or is not executable.

Atualização:

Olhando para o jw013 desde o link, tentei a abordagem sed :

rc.d restart ntpd | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" &> progress.txt

Mas nem mesmo redirecionou e simplesmente exibiu a saída colorida para o console.

Atualização 2:

Após o comentário user1146332, para canalizar o STDERR, tenho que canalizar com |& .

rc.d restart ntpd | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" &> progress.txt

Resultou em:

^[(B:: ^[(BDaemon script ^[(Bntpd^[(B does not exist or is not executable.^[(B

É mais arrumado, mas ainda restam alguns códigos. Mas esse sed RegExp é muito difícil para eu decifrar.

    
por joltmode 11.09.2012 / 15:31

3 respostas

3

Como você está executando o arch linux, pode exportar a variável USECOLOR

%> export USECOLOR="no"  # color-less
%> /etc/rc.d/ntpd stop

E o truque sed para remover cores,

rc.d stop ntpd | sed -r "s:\x1B\[[0-9;]*[mK]::g"

Mas isso não pode lidar com backspaces gerados a partir do rc.d

    
por 11.09.2012 / 16:58
1

Um método provavelmente mais universal é alterar a variável TERM para que não suporte cores como 'vt100'?

    
por 11.09.2012 / 21:57
0

Escrevi isso imediatamente, não tenho certeza sobre o formato dos seus códigos de cor, mas talvez experimente:

command | awk '{gsub(/\^[^Bm]*[Bm]/,"")}1'

    
por 11.09.2012 / 16:03