次のような、興味深いエラーが記録された大きなサーバー ログ ファイルのコレクションがあります。
2013-08-14 07:49:00,490 [ajp-8009-5] ERROR com.el.filter.SiteFilter - Caught Top-Level Exception - request=http://www.site2.com/something/home.dept?page=error&buy=123&switchcurrency=EUR
java.lang.NullPointerException
at com.el.servlet.Helper.checkJData(Helper.java:1205)
at com.el.servlet.ElServlet.doPost(ElServlet.java:113)
(...)
2013-08-14 08:18:37,984 [ajp-8009-3] ERROR com.el.filter.SiteFilter - Caught Top-Level Exception - request=http://www.site1.com/productId=123456.html
java.lang.NullPointerException
at com.el.servlet.Helper.checkJData(Helper.java:1205)
at com.el.servlet.ElServlet.doPost(ElServlet.java:113)
前述したように、これらは非常に大きなファイルであり、あらゆる種類のものによって引き起こされる多くの NullpointerExceptions があります。
これらすべてのファイルから、checkJData メソッドで NPE を引き起こした URL を抽出することに興味があります。「com.el.servlet.Helper.checkJData(Helper.java:1205)」ですべての行を grep できることはわかっていますが、その前の 2 行を取得するにはどうすればよいですか?
Windowsでそれを行うツールはありますか? そうでない場合は、bashスクリプトもいいでしょう。