今天有个人问了这样一个问题,图片是原题,在这个题的基础上写了一个实现方法
首先日志存到a.txt文本里,如下
Zhangsan|lisi1|0|
Zhangsan|lisi2|10|
Zhangsan|lisi3|6|
Zhangsan|lisi4|0|
Zhangsan|lisi5|0|
Lisi|list1|0|
Lisi|list2|5|
代码如下:
#!/bin/sh
awk 'BEGIN{FS="|";};{print $1"`"$2"`"$3}' a.txt|sort -t \` -k ,|awk 'BEGIN{FS="`";curline="";name="";renshu=0;no_cishu=0;cishu=0};
{
if(curline==""){
name=$;
renshu=;
no_cishu=;
chengong=;
cishu=$;
curline="name:"name"`renshu:"renshu"`no_cishu:"no_cishu"`cishu:"cishu"`chengong:"chengong;
}else if(name==$){
renshu++;
if($==){
no_cishu++;
}else{
chengong++;
}
#print chengong
cishu+=$;
}else{
curline="name:"name"`renshu:"renshu"`no_cishu:"no_cishu"`cishu:"cishu"`chengong:"chengong;
print curline;
name=$;
cishu=$;
renshu=;
no_cishu=;
chengong=;
} };
END{if(curline!=""){
curline="name:"name"`renshu:"renshu"`no_cishu:"no_cishu"`cishu:"cishu"`chengong:"chengong;
print curline;
} }'
结果如下:
name:Lisi`renshu:`no_cishu:`cishu:`chengong:
name:Zhangsan`renshu:`no_cishu:`cishu:`chengong: