我用 google 搜索了一下,发现在 AWK 4.0 之后,我们可以通过在 for 循环之前放置 PROCINFO["sorted_in"] 命令来按定义的顺序打印数组。例如
PROCINFO["sorted_in"] = "@ind_num_asc"
for( i in array)
print i, array[i]
在 AWK 4.0.2 中,它可以工作。但是,我在AWK 3.1.3环境下尝试过,没有成功。这个早期版本的AWK不支持这个功能吗?在AWK 3.1.3中如何实现这个目标呢?
只需保留第二个数组order
以数字索引和第一个数组的键作为值。然后你可以迭代order
按顺序查找值array
:
for (i = 1; i < length(order); i++) {
print order[i], array[order[i]]
}
建造时order
,您可能想检查密钥是否已存在于array
,以防止按键array
被多次展示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)