[英]extract variable from json style output in Linux command
我嘗試在 linux 系統中使用 AWS 機密管理器。 我可以使用 aws cli 命令
aws secretsmanager get-secret-value --secret-id abc_account --version-stage AWSCURRENT
獲得關注 output
{
"ARN": "arn:aws:secretsmanager:us-east-1:123456789:secret:abc_account-XhteiW",
"Name": "abc_account",
"VersionId": "89637ef4-4594-4c63-9887-3f7d2c7ccc6f",
"SecretString": "{\"username\":\"abc_account\",\"password\":\"PASSWORD111\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": "2021-02-08T23:57:58.325000-05:00"
}
我需要將密碼 PASSWORD111 保存到 linux 中的變量 var1 中。 就像是
var1=$(aws secretsmanager get-secret-value --secret-id svc_vma_insights_data_platform --version-stage AWSCURRENT | awk XXXXXX )
or
var1=$(aws secretsmanager get-secret-value --secret-id svc_vma_insights_data_platform --version-stage AWSCURRENT | grep XXXXXX )
這是從 JSON output 中提取秘密字符串,然后從 JSON中提取密碼:
passwd=$(aws ... | jq -r '.SecretString' | jq -r '.password')
在 linux 上,你可以試試這個gnu grep
:
var1=$(aws ... | grep -oP 'password\W+\K[^"\\]+')
echo "$var1"
PASSWORD111
命令正則表達式:
password\W+
:匹配文本password
,后跟 1+ 個非單詞字符\K
: 重置比賽信息[^"\\]+
: 匹配任何不是"
和不是\
的字符的 1+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.