人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: ArimaKei
●カテゴリ:インターネット ウェブ制作
✍キーワード:access CSV grep URL ひとつ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Vacuum
●35ポイント

IFS=","

while read URL FILE

do

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

done < list.csv

でいいのではないかな。

HTTP://DUMMY.COM

◎質問者からの返答

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

ありがとうございます


2 ● openseed
●35ポイント

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

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...

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ