在我的理解中,awk 数组类似于 python dict。
所以我写下下面的代码来探索它:
awk '{my_dict[$1] = $2} END { print my_dict}' zen
Run Code Online (Sandbox Code Playgroud)
我得到了: awk: can't read value of my_dict; it's an array name.
由于第一列不是数字,我如何读取数组的总内容或遍历它?
Ste*_*itt 81
您可以遍历数组的键并提取相应的值:
awk '{my_dict[$1] = $2} END { for (key in my_dict) { print my_dict[key] } }' zen
Run Code Online (Sandbox Code Playgroud)
要获得类似于使用 Python 字典获得的输出,您也可以打印密钥:
awk '{my_dict[$1] = $2} END { for (key in my_dict) { print key ": " my_dict[key] } }' zen
Run Code Online (Sandbox Code Playgroud)
无论密钥类型如何,这都有效。
cha*_*aos 19
这将遍历数组:
END { for (i in my_dict) print my_dict[i] }
Run Code Online (Sandbox Code Playgroud)
i
是索引。
cuo*_*glm 11
数组 inawk
不是像字典 in 那样的一流对象Python
。中awk
,不带下标的数组名只能在两种情况下使用:
in
。在其他情况下,awk
将引发错误。
您需要一个for
循环来迭代和打印数组的内容:
$ echo 1 2 | awk '{my_dict[$1] = $2};END {for(i in my_dict) print my_dict[i]}'
2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77321 次 |
最近记录: |