如何使用jq提取JSON数组中InstanceId和PrivateIpAddress字段值
问题原因
你执行的命令语法错误:| 管道符仅支持传递命令的标准输出,你直接写file.json | jq相当于尝试把file.json作为可执行命令运行,没有实际输出传递给jq,因此得不到结果。
正确实现方式
可以选任意一种写法实现需求:
- 方式一:通过cat读取文件后管道传递
cat file.json | jq -r '.Instances[0] | .InstanceId, .PrivateIpAddress' - 方式二:直接将文件名传入jq(更简洁高效)
jq -r '.Instances[0] | .InstanceId, .PrivateIpAddress' file.json
小提示:jq的过滤表达式一定要用单引号包裹,避免shell将
.、[]等符号识别为特殊字符引发额外错误。
两种方式执行后都会输出你预期的结果:
i-123548874 10.245.247.21
内容的提问来源于stack exchange,提问作者benevolent
相关产品推荐
相关产品推荐

