我剛剛瞭解了ngrep,一個很酷的程序,可以讓你輕鬆地嗅探匹配特定字符串的數據包。我如何在ngrep上編寫一個包含高亮匹配的包裝?
唯一的問題是,它可能很難看到在大塊輸出中的匹配。我想編寫一個包裝腳本來突出這些比賽 - 它可以使用ANSI轉義序列:
echo -e 'This is \e[31mRED\e[0m.'
我最熟悉Perl,但我可以用Python或任何解決方案完全幸福其他語言。最簡單的辦法是這樣的:
while (<STDIN>) {
s/$keyword/\e[31m$keyword\e[0m/g;
print;
}
然而,這不是一個很好的解決方案,因爲的ngrep打印出哈希標記不每當收到一個不匹配的數據包換行符和上面的代碼將打壓印刷這些哈希標記直到腳本看到一個換行符。
有沒有辦法突出顯示而不抑制哈希標記的即時外觀?
嗯,是的 - 我是問這個問題的人!我試圖找出什麼是優雅的方式來做到這一點 - 我應該使用非阻塞I/O? GETC()?我真的需要寫我自己的readline()替換嗎?示例代碼在這裏真的很有用。 – raldi 2008-10-17 23:15:29