找一个产品的当前月的老用户,最初在什么时候登入的 。
发现一个 非常 有意思的问题 -- 某一些时段进入的用户会非常忠诚!!
比如 08-05-01 号的新用户 ,在 其后的时间 非常忠诚,甚至到 8月 还是这样 。。
谁人帮我 解释下这个问题 ??
生成 8月份 ,老用户
find /data/tongji/iphone_app/imusic/ -type f -name "imusic_serviceinfo.log*" -not -name "imusic_serviceinfo.log*2010-08-*" -not -name "imusic_serviceinfo.log*2010-07-*" -exec grep ab=100019 {} \; |perl -nle '
if( /at=(\d{4}-\d{2}-\d{2}).*auid=(.*?)<.*/ ){
$h{ $2 }=$1 if (not $h) or $h{ $2 } gt $1 ;
}
END{
foreach my $auid (keys %h ){
print "$auid\t$h{$auid}";
}
} '|sort -u > /tmp/old.100019.2010-07.txt
|
老用户最初分布 :
find /data/tongji/iphone_app/imusic/ -type f -name "imusic_serviceinfo.log*2010-08*" -exec grep ab=100019 {} \; |perl -nle '
BEGIN{
open FILE, "/tmp/old.100019.2010-07.txt" or die $!;
%old_ip = {} ;
while (<FILE>) {
chomp;
$old_ip{$1}=$2 if /(.*)\t(.*)/;
}
}
if( /auid=(.*?)</ ){
$h{all}{ $1 } ++ ;
$h{old}{ $1 }++ if $old_ip{ $1 } ;
$h{ time }{ $old_ip{ $1 } }{ $1 }++ if $old_ip{ $1 } ;
}
END{
my $i = scalar keys %{ $h{all} };
my $ii = scalar keys %{ $h{old} };
print " 05-01月 总用户数 $i , 老用户 $ii ";
my %aa = %{$h{time}} ;
foreach my $k ( sort keys %aa ){
print $k ,"\t", scalar keys %{ $h{time}{$k} };
}
}
'
|
阅读(659) | 评论(0) | 转发(0) |