Tente:
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
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.
cat rainbox.txt | col -b > plain.txt
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.
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'