アクセスログの集計ツールを作っているのですが
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でやるのが無難でしょうか?
No.1
- 回答日時:
sed、awk、perl、ruby
正規表現が使えるツールなら、何でもOKです。
何を持って無難と判断するのか良く分かりませんが、あなたの
得意なツールでテキスト処理してください。
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
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- Java java final 1 2022/06/10 22:49
- システム ホームページの仕組みについて 3 2022/08/16 14:33
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンピュータのパラメーターと...
-
EXCELの「接続」のSQLのコマンド...
-
solarisの指定した番号のパッチ...
-
get コマンドのlocalfile パラ...
-
コマンドプロンプトで「ls」が...
-
Microsoftアカウントのユーザー...
-
USBメモリにLinuxをインストー...
-
macでDocuWorks を使うのは無理?
-
VScodeでステップ実行が出来ない
-
Virtual PC 2007に、Windows98...
-
Windows11のインストール入れ替え
-
マイクロソフトワンドライブア...
-
HDDからSSDに変更したPCの工場...
-
Cyberduckのアンインストール
-
焼いたDVDが最後の方で止まります
-
海外で買ったPowerMacに日本語...
-
Windows11へのアップグレード
-
Macの初期化の方法
-
ロータス123 を windows10 に...
-
MacOS10ですが11対応アプリをイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELの「接続」のSQLのコマンド...
-
コンピュータのパラメーターと...
-
コマンドプロンプトで「ls」が...
-
Ctrl+C と Ctrl+D の違い
-
puttyのロギングについて
-
lsで上の方が流れて見えない
-
Windows7にポップアップメッセ...
-
サファリで検索をする時の日本...
-
solarisの指定した番号のパッチ...
-
GUIアプリスタート後コマン...
-
CygwinをCMDで使う
-
VScodeでステップ実行が出来ない
-
Windowsコマンドプロンプトのmo...
-
MySQLにて、SQLファイルの実行...
-
VBA PDFで保存するマクロで実行...
-
Windowsの古いゲーム(32bit OS...
-
インストールした覚えがないア...
-
macでDocuWorks を使うのは無理?
-
Microsoft365について
-
ロータス123 を windows10 に...
おすすめ情報