Jetty アクセス ログからすべての GET /admin/hb レコードを抽出するのに適した egrep があります。
egrep '^.*? ".+? /admin/hb .*?".*?$' /m1/logs/ap*access*2013_03_19.log
「GET /admin/hb」ではないすべての行を取得したいと思います。egrep -v で十分に簡単です...
egrep -v '^.*? ".+? /admin/hb .*?".*?$' /m1/logs/ap*access*2013_03_19.log
...しかし、最終的にはこの式を Groovy スクリプトに入れる予定であり、「/admin/hb」部分を無効にする方法を知りたいと考えています。否定的なルックアラウンドでの私の弱い試みは失敗しました。どの行にも一致しません。
egrep '^.*? ".+? ^(?!/admin/hb) .*?".*?$' /m1/logs/ap*access*2013_03_19.log
/admin/hb に一致しないすべてのアクセス ログ行を egrep で生成するにはどうすればよいですか?
テスト データ セットは次のとおりです。ソリューションは最初の行をスキップすることを期待していますが、次の 2 行は一致します。
127.0.0.1 - - [20/Mar/2013:16:37:08 +0000] "GET /admin/hb HTTP/1.1" 200 105 4
10.23.68.60 - - [20/Mar/2013:16:37:08 +0000] "GET /$PIT$/AUS/admin/hb HTTP/1.1" 200 0 4
10.23.68.64 - - [20/Mar/2013:16:36:47 +0000] "GET /handsets/dmhc HTTP/1.1" 200 0 1