41 以我的理解,awk数组类似于python dict。 因此,我写下了下面的代码进行探索: awk '{my_dict[$1] = $2} END { print my_dict}' zen 我得到: awk: can't read value of my_dict; it's an array name. 由于第一列不是数字,我如何读取数组的总内容或遍历它? awk — 禅 source
60 您可以遍历数组的键并提取相应的值: awk '{my_dict[$1] = $2} END { for (key in my_dict) { print my_dict[key] } }' zen 要获得与Python字典类似的输出,还可以打印键: awk '{my_dict[$1] = $2} END { for (key in my_dict) { print key ": " my_dict[key] } }' zen 无论密钥类型如何,此方法均有效。 — 斯蒂芬·基特 source
8 数组in awk不是像字典中的一流对象Python。在中awk,不带下标的数组名称只能在两个上下文中使用: 函数定义或函数调用中的参数。 关键字后的名称标记in。 在其他情况下,awk将引发错误。 您需要一个for循环来迭代和打印数组的内容: $ echo 1 2 | awk '{my_dict[$1] = $2};END {for(i in my_dict) print my_dict[i]}' 2 — cuonglm source