awk中遍历数组的2种方式

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

遍历数组有两种方式:

1. 类似于C++的方式

#—————————–/chapter11/ex11-30.sh——————#! /bin/awk -fBEGIN { #定义数组 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 -fBEGIN { #定义数组 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种方式

相关文章:

你感兴趣的文章:

标签云: