Як у CentOS 4.4, як я можу знімати послідовності з текстового файлу?


17

Яку команду можна використовувати для вилучення послідовностей кольорового коду з текстового файлу? В ідеалі щось, що я можу пропустити. Якщо у мене є файл з купою кольорового тексту rainbow.txt, що йде в пробіл:

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

Я працюю в bash на CentOS 4.4.

Відповіді:


30

Спробуйте:

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

З 3 відповідей цей був єдиним, який працював.
slm

4

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


Чому немає жодної інформації про це? Єдине рішення, яке працює для мене! І це проклято теж просто!
phunehehe

3
Тому що це не працює для мене.
lzap

6
Це позбавляється лише від втечі персонажів, а не їх аргументів.
Аарон

1

Ви не можете, тому що те, що є послідовністю відходу, загалом не визначено чітко - вам потрібно знати, для якого терміналу розроблені ваші послідовності виходу. Якщо ви хочете обмежити проблему "смугою кольорових послідовностей ANSI" (досить вірогідне припущення), щось на зразок:

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

Слід зробити трюк.


1

Нижче наведено можливості [Xm , [X; m , [X; Ym , [X; Y; Zm) (деякі з них можуть бути технічно неправильними, але вони працюють і їх спостерігали в дикій природі):

sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.