
コマンドから次の出力を取得します。
{
"data": {
"access-type": "ObjectRead",
"access-uri": "/p/u4yRbnS_Yv29ivICXNWz-76BAgBqfln0SthBVYLZ3AdPOs9BKTQEH48MZEJNvXaT/n/bmjx6wj24zrv/b/season5/o/abcd.zip",
"bucket-listing-action": null,
"id": "tePBaSkrsUEBY+rKK0HiwraPn76TLD86BOsqm7dr3cqjNXp6026BouTf9kQoKzZk:abcd.zip",
"name": "abcd.zip",
"object-name": "abcd.zip",
"time-created": "2022-10-27T02:20:17.430000+00:00",
"time-expires": "2023-02-01T00:00:00+00:00"
}
}
誰かが私が価値を抽出するのを助けることができますか?URIへのアクセス上記の例に基づいて、出力は次のようになります。
/p/u4yRbnS_Yv29ivICXNWz-76BAgBqfln0SthBVYLZ3AdPOs9BKTQEH48MZEJNvXaT/n/bmjx6wj24zrv/b/season5/o/abcd.zip
答え1
私も一緒に行きますjq
。あなたの例では次のようになります(入力はもちろんコマンドから来ます)。
myvar=$(commandX | jq -r '.data."access-uri"?')
答え2
使用sed
$ ... | sed -En ':a;/"data":/,/}/{n;/access-uri/s/[^:]*[^"]*"([^"]*).*/\1/p;ba}'
/p/u4yRbnS_Yv29ivICXNWz-76BAgBqfln0SthBVYLZ3AdPOs9BKTQEH48MZEJNvXaT/n/bmjx6wj24zrv/b/season5/o/abcd.zip