看到「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 的組合技來解決,不過缺點就是要額外裝...