我有兩個包含相似資料但格式不同(JSON/TXT)的檔案。
檔案-A.json
{
"Name": "www.mydomain.com.",
"Type": "A",
"TTL": 600,
"ResourceRecords": [
{
"Value": "8.8.8.8"
}
]
},
{
"Name": "other.domain.com.",
"Type": "NS",
"TTL": 1800,
"ResourceRecords": [
{
"Value": "123.reg."
}
]
}
]
}
檔案-B.txt
www.mydomain.com 600 IN A 8.8.8.8
other.domain.com 1800 IN NS 123.reg.
我試圖找出區分這兩個檔案的最佳方法,以便我可以查看這些記錄是否存在/匹配。但是,由于它們的格式不同,我不確定這是可能的,所以我的想法是決議兩個檔案以具有相同的格式,然后對它們運行 diff,但我什至不知道如何開始。
我已經能夠使用 jq 決議 json 以獲取特定記錄
cat file-B.json | jq '.ResourceRecordSets[] | {"Name": .Name,"ResourceRecords": .[]}'
但開始認為這甚至不是最好的方法。
uj5u.com熱心網友回復:
主要方法是獲取相同格式的兩個資料。
因此,讓我們借助以下工具將 JSON 檔案轉換為與文本檔案相同的格式jq:
jq -r '
# For all array entries
.[] |
# Concatenates values to compose a flat DNS zone text file
.Name
" "
(.TTL|tostring)
" IN "
.Type
" "
.ResourceRecords[0].Value
' \
file-A.json |
diff - file-B.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/444160.html
