JSONを解析し、対応するオブジェクト値を変調します。

JSONを解析し、対応するオブジェクト値を変調します。

以下のようにxyz.jsonというjsonファイルがあります。

[
    {
        "annotations": [ "a" , "b" , "c" ],
        "class": "image",
        "filename": "vc00_02201.png"
    },
    {
        "annotations": [],
        "class": "image",
        "filename": "vc00_02202.png"
    }
    {
        "annotations": [],
        "class": "image",
        "filename": "vc00_02203.png"
    },
    {
        "annotations": [],
        "class": "image",
        "filename": "vc00_02204.png"
    }
]

シェルスクリプトを使用して、同じxyz.jsonファイル内の「filename」:「vc00_02201.png」の「annotations」オブジェクトを「filename」:「vc00_02204.png」の「annotations」にコピーする必要があります。予想出力:

[
    {
        "annotations": [ "a" , "b" , "c" ],
        "class": "image",
        "filename": "vc00_02201.png"
    },
    {
        "annotations": [],
        "class": "image",
        "filename": "vc00_02202.png"
    }
    {
        "annotations": [],
        "class": "image",
        "filename": "vc00_02203.png"
    },
    {
        "annotations": [ "a" , "b" , "c" ],
        "class": "image",
        "filename": "vc00_02204.png"
    }
]

ベストアンサー1

$cat xyz.json | jq '.[3].annotations=.[0].annotations'

おすすめ記事