gpt4 book ai didi

bash - 如何遍历 bash 中的字典列表

转载 作者:行者123 更新时间:2023-12-02 21:05:23 25 4
gpt4 key购买 nike

我目前正在学习 shell 脚本,需要您的帮助!

> array = [{u'name': u'androidTest', u'arn': u'arn:XXX', u'created':
1459270137.749}, {u'name': u'android-provider2016-03-3015:23:30', u'arn':XXXXX', u'created': 1459365812.466}]

我有一个字典列表,想从字典中提取 arn 值。在 python 中它非常简单,例如:

for project in array:
print project['arn']

我将如何在 bash 中编写等效循环?如果我尝试这样的事情,它是行不通的:

for i in "$array"
do
echo $i['arn']
done

建议的副本用于关联数组,而不是关联数组列表。

最佳答案

Bash 不能嵌套数据结构,因此与字典列表相对应的东西本身并不存在。使用相对较新的 Bash(4.3 或更新版本),我们可以通过 namerefs 实现类似的效果:

# Declare two associative arrays
declare -A arr1=(
[name]='androidTest'
[arn]='arn:XXX'
[created]='1459270137.749'
)

declare -A arr2=(
[name]='android-provider2016-03-3015:23:30'
[arn]='XXXXX'
[created]='1459365812.466'
)

# Declare array of names of associative arrays
names=("${!arr@}")

# Declare loop variable as nameref
declare -n arr_ref

# Loop over names
for arr_ref in "${names[@]}"; do
# Print value of key 'arn'
printf "%s\n" "${arr_ref[arn]}"
done

返回

arn:XXX
XXXXX

关于bash - 如何遍历 bash 中的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com