1. 程式人生 > >awk數值統計腳本

awk數值統計腳本

9.1 %d 處理 通信 for /bin/bash 報錯 統計 printf

  通信公司工作,經常處理各種協議接口,在統計協議接口字段內容時,需要統計字段填寫的內容是否正確,和占比是多少。要是單次統計,估計會把人累死,寫個腳本統計,輕松便捷。  

  舉例:接口內容

  這是一條話單,這樣的話單有很多條

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

awk數值統計腳本