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行 てことね。
相方に教えてもらった
いやぁ ありがたかった
コメント