• ベストアンサー

URLのパラメーター解析

アクセスログの集計ツールを作っているのですが URLのパラメーター解析の所がうまくいきません。 例えば、以下の様に変更したいのです。 /folder/test.html?ID=0001&TEST=bbb&NAME=1111&WORK=**** /folder/test.html?ID=0002&TEST=ccc&NAME=2222 /folder/test.html?ID=0003&NAME=3333 /folder/test.html?ID=0004&NAME=4444&WORK=**** を ID,TEST,NAME,WORK 0001,bbb,1111,**** 0002,ccc,2222, 0003,,3333, 0004,,4444,**** (カンマ区切り) 可能ならば、Linuxのコマンドを利用(awkコマンドの連想配列?) して作りたいのですが、他に簡単にできそうな方法はないでしょうか? PERLでやるのが無難でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

BEGIN { OFS="," IDpat ="ID=[^&]+" TESTpat="TEST=[^&]+" NAMEpat="NAME=[^&]+" WORKpat="WORK=[^&]+" print "ID,TEST,NAME,WORK" } { ID =match($0, IDpat ) ? substr($0, RSTART +3, RLENGTH -3) : "" TEST=match($0, TESTpat) ? substr($0, RSTART +5, RLENGTH -5) : "" NAME=match($0, NAMEpat) ? substr($0, RSTART +5, RLENGTH -5) : "" WORK=match($0, WORKpat) ? substr($0, RSTART +5, RLENGTH -5) : "" print ID,TEST,NAME,WORK }

その他の回答 (1)

回答No.1

sed、awk、perl、ruby 正規表現が使えるツールなら、何でもOKです。 何を持って無難と判断するのか良く分かりませんが、あなたの 得意なツールでテキスト処理してください。

関連するQ&A