【发布时间】:2020-11-03 09:42:18
【问题描述】:
你好,我有当前的 json
[
{
"name": "2020-11-02-160548",
"value": "ami-asd637ccb094d"
}
]
我想提取字段名称的名称:当我知道值时:ami-asd637ccb094d。我正在尝试用 jq 来做。预期结果为 2020-11-02-160548。有什么帮助吗?
【问题讨论】:
你好,我有当前的 json
[
{
"name": "2020-11-02-160548",
"value": "ami-asd637ccb094d"
}
]
我想提取字段名称的名称:当我知道值时:ami-asd637ccb094d。我正在尝试用 jq 来做。预期结果为 2020-11-02-160548。有什么帮助吗?
【问题讨论】:
.[] | select(.value=="ami-asd637ccb094d") | .name
【讨论】:
找到解决办法
jq '.[] | select(.value=="ami-0f5c399636ccb094d") | .name?' | tr -d '""' file.json
【讨论】:
file.json 需要作为参数传递给jq;现在它是file.json 的参数(不期望-d 有额外的参数)并且jq 正在等待来自stdin 的输入。要么把file.json放在| tr之前,要么把cat file.json | 放在jq前面。 tr 不需要,jq -r 显示原始输出(即未编码为 JSON),因此没有您要使用 tr 删除的周围引号。
-r 而不是 tr。