awk數值統計腳本
通信公司工作,經常處理各種協議接口,在統計協議接口字段內容時,需要統計字段填寫的內容是否正確,和占比是多少。要是單次統計,估計會把人累死,寫個腳本統計,輕松便捷。
舉例:接口內容
這是一條話單,這樣的話單有很多條
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數值統計腳本