bash – 为jq数组中的每个项运行一个命令
发布时间:2020-12-15 17:03:25 所属栏目:安全 来源:网络整理
导读:这是我的输入文件的样子: [ { "ConfigType": "ABC","Prop1": 3,"Prop2": 30 },{ "ConfigType": "XYZ","Prop3": "Hello","Prop4": "World","Prop5": "Application" }] 我需要为每个项目准备插入语句. 这就是我的jq命令的样子,它给了我每个项目. cat app-cnfg
这是我的输入文件的样子:
[ { "ConfigType": "ABC","Prop1": 3,"Prop2": 30 },{ "ConfigType": "XYZ","Prop3": "Hello","Prop4": "World","Prop5": "Application" } ] 我需要为每个项目准备插入语句. 这就是我的jq命令的样子,它给了我每个项目. cat app-cnfg.json | jq -r ".[]" 如何执行aws dynamodb put-item –table-name“xxx”–item<< array's element>>?
您可以应用过滤器来提取JSON数组的每个元素,并将其以bash形式提供给数组,然后再迭代其内容.假设你有bash 4.0或更高版本,你可以使用mapfile命令
mapfile -t configArr < <(jq -c '.[]' < app-cnfg.json) 现在我们遍历数组,为每个配置项运行命令, for config in "${configArr[@]}"; do aws dynamodb put-item --table-name "xxx" --item "$config" done (或)使用更有效的方法使用while循环和read命令从输入数据流中读取(适用于不支持mapfile或readarray的bash版本) while IFS= read -r config; do aws dynamodb put-item --table-name "xxx" --item "$config" done< <(jq -c '.[]' < app-cnfg.json) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |