awk的二维数组

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)这样的语法,但是下标必须放置在圆括号中。

上一篇:CKEditor与CKFinder的配置(ASP.NET环境)


下一篇:POJ 2486 Apple Tree(树形DP)