ShellでHTTPRequestログを精査 1
アクセスログから特定のリクエストのみを抽出したいので、ローカルに落として来て、とりあえずサクラエディタで置換してみました。
ctrl + r
↓
置換前 ^(?!.*GET \/hogehoge).+$
↓
置換後
↓
置換ボタン押下
アクセスログは一月分あり、1つのファイルにつき約50万行あります。サクラエディタの場合50万行の置換作業に30分以上かかって泣きそうになりました。
これじゃあ、アカンと言うことで shell で1行ずつ読み込んでごにょごにょしようと思います。まずは第一弾 shell で 特定のファイルから 1行ずつ読み込んで echo してみます。
1行読み込んで echo するスクリプト
[root@kabos ~]$ cat readline_one.sh #!/bin/sh filename=$1 cat ${filename} | while read line do echo ${line} done
テスト用の読み込みテキストデータ
[root@kabos ~]$ cat data.txt 0000000000000000000 1111111111111111111 2222222222222222222 3333333333333333333 4444444444444444444 5555555555555555555 6666666666666666666 7777777777777777777 8888888888888888888 9999999999999999999
実行結果
[root@kabosu ~]$ ./readline_one.sh data.txt 0000000000000000000 1111111111111111111 2222222222222222222 3333333333333333333 4444444444444444444 5555555555555555555 6666666666666666666 7777777777777777777 8888888888888888888 9999999999999999999
無事、1行ずつ読み込めました ^^