You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jq从JSON文件提取指定Tag值及关联存储卷属性?

解决方法:提取EBS卷名称并格式化输出表格

嘿,我明白你的问题了——你之前的jq命令之所以没得到预期结果,是因为Tags数组里Name标签的位置不是固定的第一个,有的Volume里它排在第二个,直接取[0]当然会拿到错误的值!

正确的jq命令

要准确提取Key为Name的标签值,同时输出你想要的“Name值 Size VolumeType”格式,用这条命令就可以:

jq -r '.Volumes[] | (.Tags[] | select(.Key == "Name").Value) + " " + (.Size|tostring) + " " + .VolumeType' your-json-file.json

命令拆解

  • .Volumes[]:遍历JSON里的每一个Volume对象
  • (.Tags[] | select(.Key == "Name").Value):在当前Volume的所有标签里,筛选出Key等于Name的项,取出它的Value(这一步不管Name标签在数组里的位置,都能准确找到)
  • + " " + (.Size|tostring):把数字类型的Size转换成字符串,和名称用空格拼接
  • + " " + .VolumeType:最后拼接上VolumeType字段

更规整的对齐表格

如果想让输出的表格更整齐(自动对齐各列),可以配合column命令:

jq -r '.Volumes[] | (.Tags[] | select(.Key == "Name").Value) + "\t" + (.Size|tostring) + "\t" + .VolumeType' your-json-file.json | column -t

用这个命令处理你提供的JSON,输出结果就是:

kubernetes-dynamic-pvc-claim1  100  io1
kubernetes-dynamic-pvc-claim2  200  gp2

内容的提问来源于stack exchange,提问作者Webair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:27:53