AWK二维数组的使用

awk的多维数组在本质上是一维数组,更确切一点,awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式。例 如,array[2,4] = 1这样的访问是容许的。awk使用一个特殊的字符串SUBSEP (\034)做为分割字段,在上面的例子中,关联数组array存储的键值其实是2\0344。

相似一维数组的成员测试,多维数组能够使用 if ( (i,j) in array)这样的语法,可是下标必须放置在圆括号中。
相似一维数组的循环访问,多维数组使用 for ( item in array )这样的语法遍历数组。与一维数组不一样的是,多维数组必须使用split()函数来访问单独的下标份量。split ( item, subscr, SUBSEP)

[chengmo@localhost ~]$ awk 'BEGIN{、 数组

for(i=1;i<=9;i++)
{
  for(j=1;j<=9;j++)  
  {
tarr[i,j]=i*j;
print i,"*",j,"=",tarr[i,j];
  }
}
}'
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6


……


能够经过array[k,k2]引用得到数组内容.

方法二:

[chengmo @localhost ~]$ awk 'BEGIN{ for(i=1;i<=9;i++) {   for(j=1;j<=9;j++)     { tarr[i,j]=i*j;   } } for(m in tarr)               { split(m,tarr2,SUBSEP); print tarr2[1],"*",tarr2[2],"=",tarr[m]; } }'
相关文章
相关标签/搜索