Какую команду можно использовать для удаления escape-последовательностей цветового кода из текстового файла? В идеале что-то, что я могу передать. Если у меня есть файл с кучей цветного текста rainbow.txt, что будет в пробеле:
cat rainbox.txt | *something* > plain.txt
Я работаю в bash на CentOS 4.4.
Пытаться:
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
cat rainbox.txt | col -b > plain.txt
Вы не можете, потому что, что такое escape-последовательность, в целом четко не определено - вам нужно знать, для какого типа терминала предназначены ваши escape-последовательности. Если вы хотите ограничить проблему «разделением цветовых последовательностей ANSI» (довольно вероятное предположение), что-то вроде:
sed 's/\o033\[[0-9]*;[0-9]*m//g'
Должен сделать свое дело.
Следующее будет фиксировать [Xm, [X; м, [X; Ym, и [X; Y; Zm возможности (некоторые из них могут быть технически неправильными, но они работают и были замечены в дикой природе):
sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'