2016-12-06 3 views
1

私は2つの.jsonファイルを持っています。 最初は1.jsonjqを使用して別のjsonからフィールドを取得

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

2つ目logg.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" 
    } 
} 

私はJQを使用して1.json version.numberにlogg.jsonからversion.number貼り付けることができますか?引数ファイルとして

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のコマンドプロンプトでは二重引用符を使用する必要があります。

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

ドキュメントが代わりに--slurpfileを使用することを言いますが、代わりに--argfileを使用するのは全く適切であるので、私たちは、ファイル内の単一のオブジェクトを持っています。

+0

ジェフ、それは動作します!ありがとうございました! –

+0

廃止予定の機能は今後のバージョンでは削除される傾向があるため、廃止予定の '--argfile'オプションを使用することはおそらく適切ではありません。残念なことに、 '--slurpfile'オプションはまったく同じ動作をしません。 –

関連する問題