log解析でキーワードの前後文含め取得(egrep)

log解析で、egrepを使い指定検索ワードの前後を含めて内容を取得する。

例えば、こんな感じのデータが連続したテキストログ『check.log』を残していたとする。

2010/05/18 02:10:02,PATH:/index/test/
QUERY:a1=1&a2=2&id=14
Array
(
[id] => 14
[flg] => 2
[time] => 1274108061
)

これで『[flg] => 0』のものだけ取りたいとする。

だが

grep "\[flg\] => 0" check.log|less

では

[flg] => 0
[flg] => 0
[flg] => 0
[flg] => 0

て出てくるだけで、本当にほしい情報はとれない

そんなときの対応方

egrep -B 5 -A 2 "\[flg\] => 0" check.log|less

対象から前5行、後ろ2行 てことね。

相方に教えてもらった
いやぁ ありがたかった

コメント

タイトルとURLをコピーしました