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条,求大神帮忙啊 展开
格式是这样的
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条,求大神帮忙啊 展开
展开全部
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进数据库 然后用数据库分组函数处理 就简单多了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议先sort | uniq -c 下 然后就很好处理了
追问
不太懂啊~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询