我有下面的卷曲输出:
{ “代码”:“好的”, “路线”:[{ "几何": "mlbj@qsp}VlEi@hAvHRCiKyr@gBkK`MmBN`AcC^QaA}GbAm@PRx@lDzUu@L?V", “腿”:[{ “脚步”: [], “概括”: ””, “体重”:356.9, “持续时间”:356.9, “距离”:2567.6 }], "weight_name": "可路由性", “体重”:356.9, “持续时间”:356.9, “距离”:2567.6 }], “航点”:[{ "提示": "FowshhuMLIYyAAAAfAAAAF0BAAAAAAAAgPWmQVj0TEJA9hBDAAAAADIAAAB8AAAAXQEAAAAAAADvOAAA2WB8B2bEawDqYHwHasRrAAcAfwpAAACy", “距离”:1.929525, “姓名”: ””, “位置”:[125.591769,7.06263] }, { "提示": "w1ACh____38VAAAALAAAAAgAAABXAAAAwBUMQdyhGkH5DFdA6ToRQhUAAAAsAAAACAAAAFcAAADvOAAAbXN8B9rFawB6c3wHkcVrAAEAPxBAAACy", “距离”:8.199417, “姓名”: ””, “位置”:[125.596525,7.063002] }] }
我想从部分获取duration
和的值。在这个例子中,分别是和。distance
legs
routes
356.9
2567.6
“代码”:“好的”, “路线”:[{ "几何": "mlbj@qsp}VlEi@hAvHRCiKyr@gBkK`MmBN`AcC^QaA}GbAm@PRx@lDzUu@L?V", “腿”:[{ “脚步”: [], “概括”: ””, “体重”:356.9, “持续时间”:356.9, “距离”:2567.6
我只知道如何执行curl脚本,但我不知道如何从中提取所需的值,所以我请求你的帮助。
答案1
以下jq
命令会将数组中的每个duration
和distance
值对提取legs
为两个制表符分隔的字段。将对routes
数组中的所有条目执行此操作。
jq -r '.routes[].legs | map([.duration, .distance]|@tsv)[]'
您通常会将 的输出通过管道传输curl
到此命令中:
curl -s '...some URL...' | jq -r '...as above...'
鉴于问题中的数据,这将生成
356.9 2567.6
显然,您可以使用其他命令(例如 )解析生成的持续时间+距离对的列表,具体awk
取决于您需要如何处理这些数据。