Hiroko Ishikura
s04ma****@sub*****
2004年 12月 28日 (火) 15:16:39 JST
海老澤様 石倉です > 1 ID付きレコードのURL別ページビュー数を一時ファイルに出力 > 2 ID付きレコードのURL別ユニークユーザ数を一時ファイルに出力 > 3 ID無しレコードのURL別ページビュー数を一時ファイルに出力 > 4 1〜3を、URLをキーにまとめる > 5 4の3つの項目を利用して、ユニークユーザ数(推計)を求める > > これをシェルスクリプトでまとめるといいと思いますが、いかがで > しょうか?(できれば一時ファイルなしで処理したいですが、無理 > ですよね?) このロジックで問題ないと思います。 一時ファイルを全くなしというのは難しいと思いますが、 一時ファイルを少なくすることは可能です。 下記に海老澤様のお考えになられたロジックで私なりに 一時ファイルをできるだけ最小限になるようなスクリプトを 書いてみました。ご参考までに。 --------------シェルスクリプト --------------------------------------------------------------- #!/bin/bash #ID有のページビューをカウント txt2xt -a ID,URL,TIME,REF -l test -i logfile.txt | xtcut -f URL,ID | xtselstr -f ID -v "null" -u usr0.xt -r | tee usr1.xt | xtcount -k URL -a prevCnt1 | xtcut -f URL,prevCnt1 -o xxprevCnt1 #ID無のページビューをカウント xtcount -k URL -a prevCnt0 -i usr0.xt | xtcut -f URL,prevCnt0 -o xxprevCnt0 #ID有のURL別ユニークユーザ数 xtuniq -k URL,ID -i usr1.xt | xtcount -k URL -a usrCnt1 | xtcut -f URL,usrCnt1 -o xxusrCnt #URLをキーに結合 xtjoin -nN -k URL -m xxprevCnt1 -f prevCnt1 -i xxusrCnt | xtjoin -nN -k URL -m xxprevCnt0 -f prevCnt0 | xtnulto -f prevCnt0,prevCnt1,usrCnt1 -v 0 | xtcal -c'round($prevCnt0*($usrCnt1/$prevCnt1),0.01)' -a usrCnt0 | xtcal -c'($prevCnt0+$prevCnt1)' -a ページビュー数 | xtcal -c'($usrCnt0+$usrCnt1)' -a ユニークユーザ数 | xtcut -f URL,ページビュー数,ユニークユーザ数 -o result.xt rm -rf xx* --------------ここまで --------------------------------------------------------------------- --- Hiroko Ishikura s04ma****@sub*****