【发布时间】:2017-06-30 21:43:49
【问题描述】:
所以我有两个 JSON 文件:
bosh.json:
{
"key_pair_name": "my-aws-keypair",
"ssh_private_key": "my-key-name",
"trusted_certificates": "my-trusted-certs"
}
model.json:
{
"trusted_certificates": "vault-supplied-value",
"vm_password_type": "generate"
}
我想用 bosh.json 文件更新 model.json 文件,使其看起来像这样:
{
"trusted_certificates": "my-trusted-certs",
"vm_password_type": "generate"
}
我试过了:
jq --argfile bosh bosh.json '. += $bosh' model.json
但我得到的钥匙太多
{
"trusted_certificates": "my-trusted-certs",
"vm_password_type": "generate",
"key_pair_name": "my-aws-keypair",
"ssh_private_key": "my-key-name"
}
和
jq --argfile bosh bosh.json '. + $bosh' model.json
产生相同的结果...
{
"trusted_certificates": "my-trusted-certs",
"vm_password_type": "generate",
"key_pair_name": "my-aws-keypair",
"ssh_private_key": "my-key-name"
}
此时
jq --argfile bosh bosh.json '. = $bosh' model.json
产生不正确的键...
{
"key_pair_name": "my-aws-keypair",
"ssh_private_key": "my-key-name",
"trusted_certificates": "my-trusted-certs"
}
有没有人知道如何使用 jq 获得预期的结果? 顺便说一句,我不能使用键的值进行更新,因为在其他排列中我会得到意想不到的结果......
【问题讨论】: