awk是不支持二维数组的,它的底层是一维数组,将两个key拼接为一维数组的key。
如下是其初始化和遍历
awk 'BEGIN{ for(i=0;i< 3; ++i) for(j = 0; j < 4; ++j) dict[i,j]=100 } {} END{ for( key in dict) { split(key, subkey, SUBSEP); print subkey[1], subkey[2], dict[subkey[1],subkey[2]] } }' $*
主要核心代码为split处,awk使用一个特殊的字符串SUBSEP (\034)作为分割字段。
类似一维数组的成员测试,多维数组可以使用 if ( (i,j) in array)这样的语法,但是下标必须放置在圆括号中。