Невозможно напечатать второе поле с использованием фильтра awk, передавшего команду AWS SSM - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь получить информацию из хранилища параметров AWS SSM. У меня хранятся данные, для которых значение в хранилище параметров SSM выглядит следующим образом:

CompanyName \ credits

Найдите команду SSM, выполненную через AWS CLI, вывод выглядит следующим образом:

aws ssm get-parameters --names "/Data/Details"

 - Output

{
    "Parameters": [
        {
            "Name": "/Data/Details",
            "Type": "String",
            "Value": "CompanyName\\Credits",
            "Version": 1,
            "LastModifiedDate": "2019-08-13T18:16:40.836000+00:00",
            "ARN": "arn:aws:ssm:us-west-1:8484848448444:parameter/Data/Details"
        }
    ],
    "InvalidParameters": []
}  ```


In the above output, I am trying to print only **Credits** in **"Value": "CompanyName\\Credits"**, so I have added more filters to my command as follows:

``` aws ssm get-parameters --names "/Data/Details" |grep -i "Value" |sed -e 's/[",]//g' |awk -F'\\' '{print $2}' ```


The above command gives nothing in the output. But when I am trying to print the first field I am able  to see the output as  ** Value: CompanyName ** using the following command:

``` aws ssm get-parameters --names "/Data/Details" |grep -i "Value" |sed -e 's/[",]//g' |awk -F'\\' '{print $1}' ```


Since this is Linux machine, the double slash in the field **Value : CompanyName\\Credits ** occurred to escape the '\' character for the actual value CompanyName\Credits. Can someone let me know how can I modify the command to print only the value **Credits** in my output.

Regards,
Karthik





1 Ответ

0 голосов
/ 05 марта 2020

Я думаю, что это должно работать:

param_info=$(aws ssm get-parameters \
    --names "/Data/Details" \
    --query 'Parameters[0].Value' \
    --output text)

echo ${param_info} | awk -F'\\' {'print $3'}

# or without awk

echo ${param_info#*\\\\}  # for Credit
echo ${param_info%\\\\*}  # for CompanyName

При этом используются параметры запроса и вывода для управления выводом из aws cli. Также используются bash расширения параметров .

...