25 - awk数组

awk数组的定义及使用

  • 定义数组
    • 格式:数组名[下标]=元素值
  • 调用数组
    • 格式:数组名[下标]
  • 遍历数组
    • 格式:for(变量名 in 数组名) {print 数组名[变量]}
  • 定义数组name并赋予两个值,分别为jim何tom
$ awk 'BEGIN {
> name[0]="jim";name[1]="tom";print name[1],name[0]
> }'
tom jim
  • 定义数组age,age[tom]的值为22,age[jim]的值为18
$ awk 'BEGIN {age["tom"]=22;age["jim"]=18;
> print age["tom"],age["jim"]}'
22 18

案例:统计web访问日志

$ cat access.log
172.40.1.18
172.40.1.17
172.40.1.18
172.40.1.17
172.40.1.18
172.40.1.17
172.40.1.18
172.40.1.17
172.40.1.18
172.40.1.17
172.40.1.18

$ awk '{IP[$1]++} END{for(i in IP){print i, IP[i]}}' access.log
172.40.1.17 5
172.40.1.18 6

$ who | awk '{IP[$1]++} END{for(i in IP){print i, IP[i]}}'
caowg 4

小结

  • 本文我们学习了awk数组的基本语法联系
  • 使用awk统计访问日志IP数据以及每个账户登录次数

你可能感兴趣的:(25 - awk数组)