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

http://q.hatena.ne.jp/1168769037
の続きなのですが、
URL,ファイル名(日本語)という組み合わせのリストファイル「list.csv」があり、上記Qでご回答いただいた方法で、アクセスログファイル「access.log」に含まれるURLをカウントして、ファイル名(日本語)というファイル(中身はカウントされた数)という状態になっています。

これを毎日カウントして、
URL,ファイル名,1,2,3,4…(日々の数字)
というcsvファイルに最終的にまとめたいのですが、できるだけ簡潔な方法をお教え下さい。引き続きよろしくお願いいたします。

ディレクトリ構成
script.sh
access.log
日本語のファイル名1(中身は、毎日のアクセス数が,区切りで表示)
日本語のファイル名2

list.csv
accesslog.csv<最終的にまとめるcsv

●質問者: ArimaKei
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:access CSV SCRIPT sh URL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● openseed
●60ポイント

すみません。質問はシェルだと思いますが、自分の勉強もかねて・・・コマンドを利用した集計を紹介させていただきます。

awk -F, '{print($1 "," $2);system("cat " $2);print("@")}' list.csv |tr "\n" "," | sed 's/,@,/\n/g' > accesslog.csv

※ @ をセパレータとして利用しています。

以下のコマンドを順に実行していただければ、どのような処理をしているか、理解しやすいと思います。

awk -F, '{print($1 "," $2);system("cat " $2);print("@")}' list.csv

awk -F, '{print($1 "," $2);system("cat " $2);print("@")}' list.csv |tr "\n" ","

awk -F, '{print($1 "," $2);system("cat " $2);print("@")}' list.csv |tr "\n" "," | sed 's/,@,/\n/g'


参考になれば幸いです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230879/?ST=o...

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230906/?ST=o...


2 ● openseed
●10ポイント

前のシェルスクリプトを参考に、シェルスクリプトで作成してみました。

#!/bin/sh

IFS=","

rm -f accesslog.csv

while read URL FILE

do

cnt=`cat $FILE | tr "\n" ","`

echo $URL $FILE $cnt | sed 's/ /,/g' >> accesslog.csv

done < list.csv

http://q.hatena.ne.jp/1168769037

関連質問


●質問をもっと探す●



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