使用jq更新具有变量路径的值可以通过以下步骤实现:
{
"person": {
"name": "John",
"age": 30
}
}
我们想要更新"name"字段的值。
echo '{"person": {"name": "John", "age": 30}}' | jq '.person.name = "Jane"'
这将输出更新后的JSON对象:
{
"person": {
"name": "Jane",
"age": 30
}
}
path=".person.name"
value="Jane"
echo '{"person": {"name": "John", "age": 30}}' | jq --arg p "$path" --arg v "$value" '$p = $v'
这将输出更新后的JSON对象:
{
"person": {
"name": "Jane",
"age": 30
}
}
{
"people": [
{
"name": "John",
"age": 30
},
{
"name": "Jane",
"age": 25
}
]
}
我们可以使用以下命令来更新第二个人的"name"字段的值:
echo '{"people": [{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]}' | jq '.people[1].name = "Alice"'
这将输出更新后的JSON对象:
{
"people": [
{
"name": "John",
"age": 30
},
{
"name": "Alice",
"age": 25
}
]
}
综上所述,使用jq更新具有变量路径的值可以通过jq工具和变量路径语法来实现。这种方法可以用于处理和更新复杂的JSON数据结构。
领取专属 10元无门槛券
手把手带您无忧上云