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