Как прочитать ответ awscli в сценарии оболочки - PullRequest
0 голосов
/ 19 февраля 2019

Хотите прочитать «Предметы» из ответа AWS CLI.и хочу написать «для цикла» на «Предметы».Но я не могу сделать в сценарии оболочки.Выходной формат команды AWS cli находится в формате JSON.

Sh Код:

[ ~]$ response_scan=`aws dynamodb scan --table-name recovery-plan --max-items 10 --attributes-to-get '["job_id", "job_type", "launch_category"]'`


[ ~]$ echo $response_scan
{ 
   "Count": 166, 
   "Items": [ 
        { "launch_category": { "S": "TOT" }, "job_type": { "S": "TEST" }, "job_id": { "S": "39504214122e" } }, 
        { "job_type": { "S": "TEST" }, "job_id": { "S": "8c48-914d0aa2a186" } },  
         { "job_type": { "S": "TEST" }, "job_id": { "S": "cbd07892491d" } }, 
         { "job_type": { "S": "TEST1" }, "job_id": { "S": "7afef48b0283" } },  
         { "job_type": { "S": "TEST" }, "job_id": { "S": "7d678fab68e1" } } 
     ], 
    "NextToken": "eyJFasasaseGNsdXasasaslX2Ftb3VudCasasI6IDEwfQ==",
     "ScannedCount": 166, 
     "ConsumedCapacity": null 
}

Может ли кто-нибудь помочь мне перебрать response_scan ["Items"]?

Что я делаю в точности : я хочу добавить поле - launch_category к элементам / строке, которые не имеют этого поля.Значением launch_category является TOT для TEST и TOT1 для TEST1

1 Ответ

0 голосов
/ 19 февраля 2019
response_scan=$(aws dynamodb scan --table-name recovery-plan --max-items 10 --attributes-to-get '["job_id", "job_type", "launch_category"]' --query Items[].job_type.S --output text )

Или вы можете использовать jq для анализа json - https://stedolan.github.io/jq/

...