2016-04-06 6 views
2

httpdログファイルの各行で複数の項目を一致させようとしています。行は次のようになります。awkが複数の正規表現の文字列と行の数字と一致する

192.168.0.1 - - [06/Apr/2016:16:35:42 +0100] "-" "100" "GET /breacher/gibborum.do?firstnumber=1238100121135&simple=1238100121135&protocol=http&_super=telco1 HTTP/1.1" 200 161 "-" "NING/1.0" 
192.168.0.1 - - [06/Apr/2016:16:35:44 +0100] "-" "00" "GET /breacher/gibborum.do?firstnumber=1237037630256&simple=1237037630256&protocol=http&_super=telco1 HTTP/1.1" 200 136 "-" "NING/1.0" 
192.168.0.1 - - [06/Apr/2016:16:35:44 +0100] "-" "00" "GET /breacher/gibborum.do?firstnumber=1238064400578&simple=1238064400578&protocol=http&_super=telco1 HTTP/1.1" 200 136 "-" "NING/1.0" 

_super変数の数値、タイムスタンプ、および値を抽出しようとしています。これまでのところ、私はこれで数字やタイムスタンプを抽出することができます。

awk '{match ($0, /123([0-9]+)/, arr); print $4, arr[0]}' 

どのように私も_super =変数の末尾に値を抽出ください?

答えて

1

あなたはこのようにスクリプトを変更することができます:(gsub$9を追加):

awk '{match ($0, /123([0-9]+)/, arr); gsub(/.*_super=/, "",$9); print $4, arr[0], $9}' 
+0

どうもありがとうラース!出来た! – Sina

関連する問題