首页 > 编程语言 > 详细

awk中遍历数组的2种方式

时间:2015-05-20 18:35:25      阅读:440      评论:0      收藏:0      [点我收藏+]


    awk中数组比较随意,同一个数组中的元素不一定要相同类型,而且数组下表可以是数字也可以是字符。

    遍历数组有两种方式:


1. 类似于C++的方式

#-----------------------------/chapter11/ex11-30.sh------------------
#! /bin/awk -f

BEGIN {
   #定义数组
   stu[1]="200200110"
   stu[2]="200200164"
   stu[3]="200200167"
   stu[4]="200200168"
   stu[5]="200200172"

   #计算数组的长度
   len=length(stu)
   
   #通过循环遍历数组
   for(i=1;i<=len;i++)
   {
       print i,stu[i]
   }
}

注意:这种方式需要先计算得到数组的长度,这可以使用length()函数,前面提到length也可以用来计算字符串的长度,这里还可以用来计算数组的长度,length括号里的参数是数组名称,返回的是数组的长度。

还有,数组的下标是从1开始计算,这点和C++, java不同。


2. 使用in命令

#-----------------------------/chapter11/ex11-31.sh------------------
#! /bin/awk -f

BEGIN {
   #定义数组
   arr[1]="Tim"
   arr[2]="John"
   arr["a"]=12
   arr[3]=3.1415
   arr[4]=5
   arr[99]=23

   #遍历数组
   for(n in arr)
   {
      print arr[n]
   }
}

分析:for循环语句中使用in命令,也是可以遍历出数组的所有元素。但是,输出的顺序不再按照数组定义的顺序。如果要按照顺序遍历数组,必须使用第一种方式来遍历数组。

但是,当定义数组的时候下标不是统一为数字的话,那么我们无法使用上面方式来遍历,只能使用in命令来遍历。




awk中遍历数组的2种方式

原文:http://blog.csdn.net/puqutogether/article/details/45872241

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!