默认AWK打印关联数组时,多半不会排序。
感觉上,关联数组的key是3位以上就不会排序了。
这时候加上 PROCINFO["sorted_in"] = "@ind_str_asc"
可以实现排序。这个功能对版本有限制,我在4.2.1实现,上网搜了一下,4好像就可以了。
排序可以有多种方式,具体GNU网站(英文)的8.1.6节有列表。
大致以下列表
以@a_b_c的式样
a:基于索引(ind)还是值(val)来排序
b:按字符串(str)比较,按数值(num)比较和按类型(type)比较。如果是按照类型,在升序的情况下,数值>字符串>数组
c:指定升序(asc)或降序(desc)
@unsorted:默认值 无序。
@ind_str_asc:基于索引按字符串比较方式升序排序。
@ind_str_desc:基于索引按字符串比较方式降序排序。
@ind_num_asc:基于索引按数值比较方式升序排序。无法转换成数值的视作数值0。
@ind_num_desc:基于索引按数值比较方式降序排序。无法转换成数值的视作数值0。
@val_type_asc:基于元素按照数据类型比较方式升序排序。
@val_type_desc:基于元素按照数据类型比较方式降序排序。
@val_str_asc:基于元素按照字符串比较方式升序排序。
@val_str_desc:基于元素按照字符串比较方式降序排序。
@val_num_asc:基于元素按照数值比较方式升序排序。
@val_num_desc:基于元素按照数值比较方式降序排序。