看到「kellyjonbrazil/jc」這個專案,展試一下就可以理解用途了:(最後接 jq 只是為了 pretty print)
$ dig www.google.com | jc --dig | jq
[
{
"id": 57567,
"opcode": "QUERY",
"status": "NOERROR",
"flags": [
"qr",
"rd",
"ra"
],
"query_num": 1,
"answer_num": 1,
"authority_num": 0,
"additional_num": 1,
"opt_pseudosection": {
"edns": {
"version": 0,
"flags": [],
"udp": 1232
},
"cookie": "37fe52c319e24fbbeadce09b6579665ea173fcd360d0a298"
},
"question": {
"name": "www.google.com.",
"class": "IN",
"type": "A"
},
"answer": [
{
"name": "www.google.com.",
"class": "IN",
"type": "A",
"ttl": 249,
"data": "142.251.42.228"
}
],
"query_time": 0,
"server": "168.95.192.1#53(168.95.192.1) (UDP)",
"when": "Wed Dec 13 16:07:58 CST 2023",
"rcvd": 87,
"when_epoch": 1702454878,
"when_epoch_utc": null
}
]
覺得可以開始用的原因是發現從 Ubuntu 22.04 開始,在官方的 APT repository 有把 jc 包進去了,裝起來會簡單不少。
雖然 22.04 裡面包的版本是 1.17.3 (現在是 1.23.6),但這個版本已經支援不少格式了。
之後在 shell script 裡面自己 grep + sed 組到起笑的時候,可以考慮加掛 jc + jq 的組合技來解決,不過缺點就是要額外裝...