awk

来源:互联网 发布:dw设计网页源码 编辑:程序博客网 时间:2024/06/05 01:09

用到的命令备注一下

l.log |awk '{a[$18]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' >q.log

cat hkDeal.log |awk '{a[$17]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t ,

cat hkDeal.log |awk '{a[$17]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r


cat hkSnap.log |awk '{a[$24]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r|wc -l

 cat hkMin.log |awk '{a[$17]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r

cat hkTen.log |awk '{a[$59]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r|wc -l

 cat hkJjs.log |awk '{a[$209]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r|wc -l


 cat hkSnap.consumer.log |awk '{a[$24]+=1}END{for (i in a){printf "%s %d\n", i, a[i]} }' |sort -n -k 2 -t , -r|wc -l

例如:
1117 超市1  苹果   10
1117 超市2  苹果   20
1117 超市1  苹果   50
1118 超市2  苹果   100

变成这样
1117 超市1  苹果   60
1117 超市2  苹果   20
1118 超市2  苹果   100
awk '{a[$1]=a[$1]==""?$4:a[$1]","$4}END{for(i in a){c=split(a[i],b,",");{sum=0;for(j in b){sum+=b[j]};print i"\t"c"\t"sum}}}'


        awk '{a[$1]=a[$1]==""?$4:a[$1]","$4}END{
            for(i in a){
                c=split(a[i],b,",");
                {
                    sum=0;
                    for(j in b){sum+=b[j]};
                        print i"\t"c"\t"sum
                }
            }
        }'



awk -F ',' '{a[$17]=a[$17]==""?$20:a[$17]","$20}END{for(i in a){c=split(a[i],b,",");{max="";for(j in b){if(b[j]>max) max=b[j]};print i"\t"c"\t"max}}}' hkSnap.log


2017-11-23 13:54:58.460 INFO  hkSnapParser - HqSnapVo [ta=11720, tm=0.0, pp=0, tp=2000, ap=0.0, lcp=5.9099, op=5.9699, hp=6.07, lp=5.86, np=5.86, hlp=0.0, pl=0.0, ty=0, ta5=0, ta10=0, hlpm=429496.6797, toString()=VoBase [id=1134200, sc=02869, sn=绿城服务, ht=Thu Nov 16 13:01:18 CST 2017, rt=Thu Nov 23 13:54:58 CST 2017, sg=1, st=1, mkt=712, od=0]].total time cost:608020460.packate time cost:0


awk -F ',' '{a[$17]=a[$17]==""?$20"_"$21:a[$17]","$20"_"$21}END{for(i in a){c=split(a[i],b,",");{max="";for(j in b){d=split(b[j],e,"_"); if(e[1]>max) max=e[1]};print i"\t"c"\t"max"\t"e[2]}}}' hkSnap.log