다음과 같은 컬 출력이 있습니다.
{ "코드": "알았어", "노선":[{ "기하학": "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____38VAAAALAAAAgAAABXAAAAwBUMQdyhGkH5DFdA6ToRQhUAAAAsAAAACAAAAFcAAADvOAAAbXN8B9rFawB6c3wHkcVrAAEAPxBAAACy", "거리": 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
컬 스크립트를 실행하는 방법만 알고 있는데, 여기서 필요한 값을 추출하는 방법을 몰라서 도움을 요청드립니다.
답변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
분명히 데이터로 수행해야 하는 작업에 따라 다른 명령(예: )을 사용하여 기간+거리 쌍의 결과 목록을 구문 분석할 수 있습니다 .