Окраска хвоста производится с жемчугом

Хром не позволяет Вам, так как это - библиотека на 32 бита:

$ file /usr/lib/flashplugin-installer/libflashplayer.so /usr/lib/flashplugin-installer/libflashplayer.so.bk
/usr/lib/flashplugin-installer/libflashplayer.so:    ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/flashplugin-installer/libflashplayer.so.bk: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

(Очевидно, .bk мое резервное копирование),

Я использовал бы 32-разрядную систему для отладки Flash.

(У меня нет 32-разрядной системы прямо сейчас, обновит позже),

3
25.11.2014, 15:45
2 ответа

Прежде всего, вы можете использовать практически то же самое регулярное выражение и синтаксис, поскольку вы делали с SED . Просто измените и на на $ & для Perl:

echo "WARN ERROR foo" | 
    perl -pe 's#WARN#\x1b[33m$&#; s#ERROR#\x1b[31m$&#; s#foo#\x1b[32m$&#'    

или, используя ваш исходный подход Perl, просто удалите . * по обе стороны от шаблона Хотите соответствовать:

tail -f logfile.log | perl -pe 's/foo/\e[1;41m$&\e[0m/g'    

Для более универсального подхода вы можете использовать маленький сценарий, который я разместил в , мой ответ здесь . С этим вы можете расцветать до 10 шаблонов с другим цветом для каждого. Например, чтобы раскрасить слова ошибка , предупреждение и foo , в другом цвете, независимо от случая:

tail -f logfile.log | color.pl -il "error,warning,foo"
1
27.01.2020, 21:27

Вот являются примером, который выделяет от ОШИБКА в конец строки, целая строка, содержащая , ПРЕДУПРЕЖДАЕТ , и нечто , но ничто окружающее его. Только первое правило соответствия применяется (например, ПРЕДУПРЕДИТЕ: ОШИБОЧНОЕ нечто наборы ОШИБОЧНОЕ нечто в красном), настройтесь, как вы считаете целесообразным.

perl -pe 's/ERROR.*/\e[31m$&\e[0m/ || s/.*WARN.*/\e[33m$&\e[0m/ || s/foo/\e[32m$&\e[0m'

альтернативный подход, если вы хотите выделить ключевые слова, должен вызвать функцию для определения цвета ключевого слова. (Этот пример не делает того же самого как предыдущего: это всегда выделяет целую строку.)

perl -pe '
    sub color {
         my ($keyword) = @_;
         $keyword =~ /err/i ? 31 :
         $keyword =~ /warn/i ? 33 :
         32;
    }
    if (/(ERROR|WARN|foo)/) {$color=color($1); s/^/\e[${color}m/; s/$/\e[0m/}
'
1
27.01.2020, 21:27

Теги

Похожие вопросы