Я только что узнал о ngrep , классной программе, которая позволяет вам легко перехватывать пакеты, соответствующие определенной строке.
Единственная проблема состоит в том, что может быть трудно увидеть совпадение в большом куске результатов. Я хотел бы написать скрипт-обертку, чтобы выделить эти совпадения - он мог бы использовать escape-последовательности ANSI:
echo -e 'This is \e[31mRED\e[0m.'
Я больше всего знаком с Perl, но я очень доволен решением на Python или любом другом языке. Самый простой подход будет выглядеть примерно так:
while (<STDIN>) {
s/$keyword/\e[31m$keyword\e[0m/g;
print;
}
Однако это не очень хорошее решение, потому что ngrep выводит хеш-метки без перевода строки всякий раз, когда получает несоответствующий пакет, и приведенный выше код будет подавлять печать этих хеш-меток, пока скрипт не увидит новую строку.
Есть ли способ сделать выделение, не препятствуя мгновенному появлению хеш-меток?