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
本文介绍了awk编程中数组的定义、调用和遍历方法,并通过实例展示了如何定义和操作关联数组。此外,还利用awk解析和统计访问日志,展示其在日志分析中的实用性,例如统计不同IP的访问次数。
1193

被折叠的 条评论
为什么被折叠?



