awk 数组与函数使用全解析
数组排序与遍历
在按元素值对数组进行排序时,如果某个值恰好是一个子数组,那么无论该子数组本身包含什么内容,它都被认为比任何字符串或数值都大,并且所有子数组都被视为彼此相等。它们之间的相对顺序由其索引字符串决定。
在排序数组遍历时,还需要记住以下几点:
- PROCINFO["sorted_in"] 的值是全局的,会影响所有数组遍历的 for 循环。如果需要在代码中更改它,应该先检查其是否已定义,并保存和恢复该值,示例代码如下:
if ("sorted_in" in PROCINFO) {
save_sorted = PROCINFO["sorted_in"]
PROCINFO["sorted_in"] = "@val_str_desc" # 或其他值
}
# 后续代码
if (save_sorted)
PROCINFO["sorted_in"] = save_sorted
- 默认的数组遍历顺序由
"@unsorted"表示。也可以通过将空字符串赋值给PROCINFO["sorted_in"]或使用delete语句从PROCINFO数组中删除"sorted_in"元素来获得默认行为。
使用数字作为数组下标
数组下标始终是字符串。当使用
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



