通信公司工作,经常处理各种协议接口,在统计协议接口字段内容时,需要统计字段填写的内容是否正确,和占比是多少。要是单次统计,估计会把人累死,写个脚本统计,轻松便捷。
举例:接口内容
这是一条话单,这样的话单有很多条
24|eb8f7837000039|||8613522222222|||2016092817|2016092817|7|1|10.82.58.2|4010|10.82.99.10|3868|2001
统计结果举例:
截取第10和11字段
--------- [ 10 ] ---------
Total 80816
35.66% 28817 1
6.09% 4924 2
18.37% 14843 3
39.87% 32221 4
--------- [ 11 ] ---------
Total 80816?
96.21% 77756 1?
0.15% 125 2?
3.63% 2935 3
#!/bin/bash
awk -F, ‘BEGIN
#这里-F, 需要注意,假如这里不用脚本,直接awk统计的话,需要使用awk两次,首次awk统计出结果,然后再用这个awk对同一数值归类。这时,-F, 是可以不写的,但是在写的时候,这里的“,” 是不能少的,不然报错。
{ total = 0; }
{
items[$0]++;
total++;
}
END {
for (item in items){
printf("%6.2f%% %-10d %s\n",
items[item] * 100 / total, items[item], item); }
printf("Total %d\n", total);
}‘
原文地址:https://www.cnblogs.com/z977690557/p/9179211.html