数组 – 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下的最后一个示例:
(编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

