簡體   English   中英

從“ aws ec2 describe-instances”輸出中的方括號中獲取價值

[英]Getting value out from square brackets in “aws ec2 describe-instances” output

我將命令的輸出保存在變量中,並在其他命令中使用它

instance_id=$(aws ec2 describe-instances --query Reservations[*].Instances[*].[InstanceId] --filters "Name=tag:staging,Values=staging")

我得到這個輸出[[[“ i-09140824c1b7f9ea7”]]]

如何從輸出中刪除括號並在此命令的變量中使用它

aws ec2 associate-address --instance-id $instance_id --allocation-id allocid

我是bash的新手,所以將不勝感激。

您可以使用以下方法提取值並將其從JSON解碼為純文本:

instance_id_json='[ [ [ "i-09140824c1b7f9ea7" ] ] ]'
instance_id=$(jq -r '.[][][]' <<<"$instance_id_json")

考慮將原始代碼更改為:

instance_id_json=$(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters 'Name=tag:staging,Values=staging')

...請注意,我們將查詢放在引號中(因為它具有glob字符),而不僅是過濾器(而且該過濾器旨在作為不帶擴展名的文字文本,因此默認情況下使用單引號而不是形式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM