perl处理txt数据并统计 10

有一个a.txt,里面大概有130W条数据格式是这样的pord,manu,mach,imei,imsi,op,ver,lwsf,pi,date100,1068,A9913... 有一个a.txt,里面大概有130W条数据
格式是这样的
pord,manu,mach,imei,imsi,op,ver,lwsf,pi,date
100,1068,A9913,868294000090480,460017130059911,2,2.2.2,1,11,2013-12-22 00:00:00
100,1068,S9,868672010008198,460078221801026,0,2.2.4,2,11,2013-12-22 00:00:00
100,1068,U1203w,A1000030425A48A,460030262485407,3,2.2.4,1,16,2013-12-22 00:00:00
100,1028,S300,862080022860885,460028551710598,1,3.0.7,1,16,2013-12-22 00:00:00
100,1068,G29H,869527010421297,460014340503634,2,2.2.3,1,16,2013-12-22 00:00:00
100,1068,U62,866729010163324,460029549652696,1,3.0.0,1,11,2013-12-22 00:00:00
100,1068,U558w,A1000030413F3DB,460036741367307,3,2.2.4,1,11,2013-12-22 00:00:00
100,1028,RSD_V5,869644010198153,460006162836600,null,1.3.0,null,16,2013-12-22 00:00:00
现在想把manu,mach,imei,imsi,ver,lwfs相同的当成一条记录(user),但是有多少条就算多少次(times),并且根据lwsf来分组,得到这样的格式
lwsf,user,times
1,33,111
2,22,344
就是lwfs为1的有111条,但是里面manu,mach,imei,imsi,ver,lwfs相同折合起来只有33条,求大神帮忙啊
展开
 我来答
爱讲段子的小傻瓜
2013-12-27 · TA获得超过114个赞
知道答主
回答量:92
采纳率:0%
帮助的人:86.2万
展开全部
open IN,"a.txt";
open OUT,">result.txt";
while(<IN>)

{

chomp;

@a=split/,/,$_;

$b="@a[0..4]";

$h{$a[-3]}++;

if($z{$b$a[-3]}!=1)

{

$z{$b$a[-3]}=1

$y{$a[-3]}++;


}



}

foreach (keys %h)

{

print OUT "$_\t$y{$_}\t$h{$_}\n";



}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-27
展开全部
建议 load进数据库 然后用数据库分组函数处理 就简单多了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
念奇邃99
2013-12-24
知道答主
回答量:19
采纳率:0%
帮助的人:12.7万
展开全部
建议先sort | uniq -c 下 然后就很好处理了
追问
不太懂啊~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式