{"expand":"renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations","id":"15114","self":"https://brg-jira-tst.state.mi.us/rest/api/2/issue/15114","key":"BRGTEST-11","fields":{"issuetype":{"self":"https://brg-jira-tst.state.mi.us/rest/api/2/issuetype/10200","id":"10200","description":"A task that needs to be done associated with Bridges project","iconUrl":"https://brg-jira-tst.state.mi.us/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"customfield_11500":"QAT"}}
上記はa.jsonに保存されている私のjson応答です
シェルスクリプトを使用して、このa.json応答からcustomfield_11500の値を抽出したいと思います。どうやってするの
この場合、Shellコマンドの出力は結果を "QAT"とする必要があります
逆スクロール用のフォーマット済みJSON:
{
"expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
"id": "15114",
"self": "https://brg-jira-tst.state.mi.us/rest/api/2/issue/15114",
"key": "BRGTEST-11",
"fields": {
"issuetype": {
"self": "https://brg-jira-tst.state.mi.us/rest/api/2/issuetype/10200",
"id": "10200",
"description": "A task that needs to be done associated with Bridges project",
"iconUrl": "https://brg-jira-tst.state.mi.us/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
"name": "Task",
"subtask": false,
"avatarId": 10318
},
"customfield_11500": "QAT"
}
}
最近のバージョンのksh93
シェル(v-
以上):
read -m json j < file.json &&
print -r -- "${j.fields.customfield_11500}"
または、広く利用可能な(通常はデフォルトではインストールされませんが)jq
jsonプロセッサツールを使用します。
jq -r '.fields.customfield_11500' file.json
これに基づいて post およびフォーマットされたjsonファイルを使用
grep -oP '(?<="customfield_11500": ")[^"]*' a.json
jtc
に基づく簡単な代替ソリューションを次に示します。
bash $ cat a.json | jtc -w'<customfield_11500>l'
"QAT"
bash $
JSON構造は、JSON対応ルーチンによってのみ処理される必要があります(そうでない場合、誤検知は避けられません)