シェルスクリプトで質問です。

URL1,file1
URL2,file2
URL3,file3
|
URLx,filex
というファイルlist.csvを読み込んで
cat access.log | grep URL1(からURLx) | wc -l >> file1(からfilex)
といった感じでaccesslogから該当するURLを含んだ行を数えるスクリプトを書いているのですが、ファイルを読み込んで、ループ処理させる部分をどうかいてよいかいまひとつよく分かりません。
簡潔な書き方を教えてください

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/01/14 19:04:00
  • 終了:2007/01/14 20:54:21

回答(2件)

id:Vacuum No.1

Vacuum回答回数54ベストアンサー獲得回数42007/01/14 19:16:52

ポイント35pt

IFS=","

while read URL FILE

do

cat access.log | grep $URL | wc -l >> $FILE

done < list.csv

でいいのではないかな。

HTTP://DUMMY.COM

id:ArimaKei

なるほど。これはすっきりしていますね。

ありがとうございます

2007/01/14 20:53:29
id:openseed No.2

openseed回答回数51ベストアンサー獲得回数62007/01/14 20:24:43

ポイント35pt

コマンドだけでも実現できるかもしれませんので、参考まで。

awk -F, '{system("grep " $1 " access.log | wc -l >> " $2)}' list.csv

実際に実行されるコマンドを確認したいときは、

awk -F, '{print("grep " $1 " access.log | wc -l >> " $2)}' list.csv

とすると、わかりやすいかもしれません。

http://ccweb1.kek.jp/people/yashiro/guide/QuickRef/Appli/awk.htm...

id:ArimaKei

awk、よく分からないのですが、これも勉強してみます。

2007/01/14 20:54:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません