awk小例子_2_数值统计脚本

时间:2022-10-22 16:06:49

  通信公司工作,经常处理各种协议接口,在统计协议接口字段内容时,需要统计字段填写的内容是否正确,和占比是多少。要是单次统计,估计会把人累死,写个脚本统计,轻松便捷。  

  举例:接口内容

  这是一条话单,这样的话单有很多条

  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);
}'