Ad Discendum, Non Ad Docendum

Для того, чтобы учиться, а не для того, чтобы учить

Kill ^[

Posted by Денис Лозко Tue, 27 Feb 2007 22:01:00 GMT

Спросил меня сегодня pahan

есть такой символ управляющий )
^[[m
как его обработать?

как его заматчить?
регекспом …
ебучий линуховый топ его юзает
такой символ
фря - нет

Я ему уже сказал, что там не ^[[m, а че нить типа ^[[1;37m, что представляет собой Escape sequence для отображения визуальных текстовых эфектов, как-то цвет текста/фона, подчеркиваение/зачеркивание ну и т.п.

Для того что-бы ввести сам символ ^[ можно поступить по разному:

  • можно воспользоватся незамысловатой комбинацией <ctl>-V+<ctrl>-[, в результате чего получим непечатаемый символ (но тот что нужен), который удобно использовать напрямую из комманд-лайн’а, точно так же как на скриншоте (надобно кликноть для оригинала):
  • а можно по другому: вместо <ctl>-V+<ctrl>-[ использовать \033, что можно использовать (на манер примера выше с sed’ом) следующим образом:
> tail -10 log/development.log|perl -e ‘while($_=<>){$_=~s/\033\[([0-9]{1,2};)*[0-9]m//g;print $_}’

Posted in , | 1 comment | Tags , , , , | atom

Trackbacks

Use the following link to trackback from your own site:
http://blog.org.ua/trackbacks?article_id=kill&day=28&month=02&year=2007

Comments

Leave a response

  1. Avatar
    pahan
    2 days later:

    Немного не подошёл твой регексп. В выводе линуксового топа обнаружились след. esc-последовательности: ^[[m ^[[39;49m ^[[H ^[[J ^[[K ^[[7m В общем-то режутся таким re: \033[\d(;)?\d(m|K|H|J).

Leave a comment