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]; } }'
相關文章
相關標籤/搜索