awk 数组的定义及使用
定义数组
- 格式:数组名[下标]=元素值 (a[0]= ,a[1]= )
调用数组
- 格式:数组名[下标]
遍历数组
- 格式:for(变量名in数组名){print数组名[变量]}
定义数组name并赋予两个值,分别为Jordan和kobe
[root@zabbix-server day5]# awk 'BEGIN{
> name[0]="Jordan";name[1]="kobe";print name[1],name[0]
> }'
kobe Jordan
定义数组age,age[Jordan]的值为58,age[kobe]的值为37
[root@zabbix-server day5]# awk 'BEGIN{age["Jordan"]=58;age["kobe"]=37; \
> print age["Jordan"],age["kobe"]
> }'
58 37
遍历数组的值
[root@zabbix-server day5]# awk 'BEGIN{ x[0]=0;x[1]=1;x[2]=2;x[3]=3;
> for(i in x){print x[i] } }
> '
0
1
2
3
[root@zabbix-server day5]# awk 'BEGIN{ x[0]=0;x[1]=1;x[2]=2;x[3]=3;
for(i in x){ print i,x[i] } }
'
0 0
1 1
2 2
3 3
应用案例
统计web访问日志
访问日志的格式
tail access_log
简化数据,统计每个IP访问的次数
[root@zabbix-server day5]# more access.log
172.40.1.18
172.40.1.17
172.40.1.18
172.40.1.16
172.40.1.17
172.40.1.18
[root@zabbix-server day5]# awk '{IP[$1]++} END{ for(i in IP) {print i,IP[i] } }' access.log
172.40.1.16 1
172.40.1.17 2
172.40.1.18 3
[root@zabbix-server day5]# who | awk '{IP[$1]++} END{ for(i in IP) {print i,IP[i] } }'
root 1
版权声明:本文为wangl2014原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。