No CentOS 4.4, como posso extrair seqüências de escape de um arquivo de texto?

17

Qual comando posso usar para extrair seqüências de escape com código de cores de um arquivo de texto? Idealmente, eu posso canalizar. Se eu tiver um arquivo com um monte de texto colorido rainbow.txt, o que acontece no intervalo:

cat rainbox.txt | *something* > plain.txt

Estou trabalhando no bash no CentOS 4.4.

    
por kdt 05.10.2009 / 10:59

4 respostas

29

Tente:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
    
por 05.10.2009 / 11:17
4

cat rainbox.txt | col -b > plain.txt

    
por 23.06.2010 / 04:26
1

Você não pode, porque o que é uma seqüência de escape não é bem definida em geral - você precisa saber para que tipo de terminal suas sequências de escape foram projetadas. Se você quiser restringir o problema para "remover seqüências de cores ANSI" (uma suposição bastante provável), algo como:

sed 's/\o033\[[0-9]*;[0-9]*m//g'

Deve fazer o truque.

    
por 05.10.2009 / 11:16
1

Os itens a seguir capturarão o [Xm , [X; m , [X; Ym e [X; Y ; Zm possibilidades (algumas delas podem estar tecnicamente incorretas, mas funcionam e foram vistas em estado selvagem):

sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'
    
por 05.09.2014 / 17:54