数组 – asort(src,dest)到多维数组
我试图滥用asort()(只是因为)将数组src复制到数组dest,没问题: $awk 'BEGIN { split("first;second;third",src,";") # make src array for testing asort(src,dest,"@ind_num_asc") # copy array to dest for(i in dest) print i,src[i],dest[i] # output }' 1 first first 2 second second 3 third third 但有没有办法使用多维数组作为dest数组?就像是: asort(src,dest [src [1]],“@ ind_num_asc”)#或dest [src [1]] [] (前者产生的第二个参数不是数组,后面的语法错误 当然我可以使用for循环,但我的大脑仍然坚持测试这个解决方案. 解决方法你只需要在dest [src [1]]下创建一个数组,所以gawk知道dest [src [1]]是一个数组数组而不是默认的字符串数组:$cat tst.awk BEGIN { split("first;second;third",/;/) # make src array for testing asort(src,dest1d) # copy array to dest1d for(i in dest1d) print i,dest1d[i] # output print "" dest2d[src[1]][1] asort(src,dest2d[src[1]]) # copy array to dest2d for(i in dest2d) for (j in dest2d[i]) print i,j,dest2d[i][j] # output } $gawk -f tst.awk 1 first first 2 second second 3 third third first 1 first first 2 second first 3 third 你给初始子数组的索引并不重要,因为它会被asort()删除.请参阅https://www.gnu.org/software/gawk/manual/gawk.html#Arrays-of-Arrays下的最后一个示例:
(编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |