2016-12-06 1 views
1

두 개의 .json 파일이 있습니다.jq를 사용하여 다른 json에서 필드 가져 오기

{ 
    "id": "228204270", 
    "type": "page", 
    "status": "current", 
    "title": "test-test", 
    "version": { 
     "when": "2016-11-23T16:54:18.313+07:00", 
     "number": 17, 
     "minorEdit": false 
    }, 
    "extensions": { 
     "position": "none" 
    } 
} 

내가 logg.json에서 version.number 붙여 넣을 수 있습니다 version.number의 1.json에 JQ를 사용하여 : 첫 번째는 1.json

{ 
    "id": "107709375", 
    "type": "page", 
    "title": "SomeTitle", 
    "space": { 
     "key": "BUSINT" 
    }, 
    "version": { 
     "number": 62 
    } 
} 

그리고 두 번째 logg.json은?

jq-win64 ".version.number 1.json" = ".version.number +1" logg.json 

답변

1

읽기 logg.json 인수 파일로 : 나는 그런 일 (절대적으로 잘못)가 필요합니다. 그러면 값을 액세스하여 다른 값을 변경할 수 있습니다.

$ jq --argfile logg logg.json '.version.number = $logg.version.number + 1' 1.json 

물론 Windows 명령 프롬프트에서 작업하려면 큰 따옴표를 사용해야합니다. 문서 대신 --slurpfile을 사용 말한다 있지만 대신 --argfile를 사용하는 것이 완전히 적합 할 수 있도록

> jq --argfile logg logg.json ".version.number = $logg.version.number + 1" 1.json 

, 우리는 단지 파일의 단일 개체가 있습니다.

+0

제프, 작동합니다! 고맙습니다! –

+0

더 이상 사용되지 않는 기능은 이후 버전에서 제거되는 경향이 있으므로 사용되지 않는'--argfile' 옵션을 사용하는 것은 적절하지 않습니다. 불행히도,'--slurpfile' 옵션은 똑같이 작동하지 않습니다. –