我正在撰寫一個旨在清理 Route53 記錄的腳本,因此我想將陣列中的條目添加到 JSON 物件,如下所示
外部.json
{
"Comment": "Delete record sets for $cluster_name",
"Changes": [
{
"Action": "DELETE",
"ResourceRecordSet": {}
}
]
}
記錄.json
[
{
"Name": "abcde_svcx.$cluster_name.domain.com.",
"Type": "TXT",
"TTL": 300,
"ResourceRecords": [
{
"Value": "\"heritage=external-dns,external-dns/owner=$cluster_name,external-dns/resource=service/svcx/svcx-cluster\""
}
]
},
{
"Name": "svcx.$cluster_name.domain.com.",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "123456789",
"DNSName": "some-value.elb.us-east-2.amazonaws.com.",
"EvaluateTargetHealth": true
}
}
]
我想要一個如下所示的輸出:
輸出.json
{
"Comment": "Delete record sets for $cluster_name",
"Changes": [
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "abcde_svcx.$cluster_name.domain.com.",
"Type": "TXT",
"TTL": 300,
"ResourceRecords": [
{
"Value": "\"heritage=external-dns,external-dns/owner=$cluster_name,external-dns/resource=service/svcx/svcx-cluster\""
}
]
}
},
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "svcx.$cluster_name.domain.com.",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "123456789",
"DNSName": "some-value.elb.us-east-2.amazonaws.com.",
"EvaluateTargetHealth": true
}
}
}
]
}
這是可以使用 jq 在 shell 腳本中完成的嗎?
uj5u.com熱心網友回復:
|=通過將第二個檔案的陣列 items.Changes添加到其firstitem 的欄位來更新陣列:ResourceRecordSetinput[]
jq '.Changes |= [first | .ResourceRecordSet = input[]]' outer.json records.json
{
"Comment": "Delete record sets for $cluster_name",
"Changes": [
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "abcde_svcx.$cluster_name.domain.com.",
"Type": "TXT",
"TTL": 300,
"ResourceRecords": [
{
"Value": "\"heritage=external-dns,external-dns/owner=$cluster_name,external-dns/resource=service/svcx/svcx-cluster\""
}
]
}
},
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "svcx.$cluster_name.domain.com.",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "123456789",
"DNSName": "some-value.elb.us-east-2.amazonaws.com.",
"EvaluateTargetHealth": true
}
}
}
]
}
演示
注意:如果outer.json'sResourceRecordSet始終為空,您也可以只進行分配=而不是更新添加 =。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/445829.html
