2017-02-15 4 views
0

나는 다음과 같은 개체가 있습니다.주어진 위치에 개체를 병합 하시겠습니까?</p> <pre><code>// exhibit a { "exported_modules": ["a", "b"] } // exhibit b { "name": "thing b" } </code></pre> <p>그들은 별도의 파일에 존재 :

{ 
    "exported_modules": ["a", "b"], 
    "modules": { 
    "a": { 
     "name": "thing b" 
    } 
} 
} 

은 기본적으로 내가 .modules.a에 b를 전시의 내용을 삽입해야합니다 : 나는 기본적으로 그들은 그들이 다음과 같은 상태에 통합 출력 변환을 할 필요가있다. jq에서이 작업을 수행 할 수있는 방법이 있습니까? 나는 jq 1.3에 있습니다. 불행히도, 제 배포판에서 제공됩니다.

나는 what has been recommended here을 시도했지만 모든 키를 병합하는 대신 특정 위치에 병합하지 못했습니다.

답변

0

jq 1.3은 고대 버전이므로 해당 버전을 사용하는 솔루션은 오히려 우아하지 않습니다. 아마도 가장 좋은 방법은 두 개의 파일 "후루룩 소리 내며 먹기"하는 것입니다 : JQ 1.4 이상을 사용,

jq1.3 -s '.[1] as $o | .[0] | .modules.a = $o' exhibit-a.json exhibit-b.json 

이뿐만 아니라 이후 버전과 함께 작동하지만 비교를 위해, 하나는 쓸 수있다 :

jq --argfile modules exhibit-a.json ' 
    . as $in | $modules | .modules.a = $in' exhibit-b.json