我有一个问题,所以你会保护我的生命:-)
当我从aws-shell运行以下命令时
cloudformation describe-stacks --query Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==\`PARAM_NAME1\`].ParameterValue,Parameters[?ParameterKey==\`PARAM_NAME2\`].ParameterValue] --output text
结果分为3行:
automation-X arn:aws:cloudformation:X X无
PARAM_VALUE1
PARAM_VALUE2
但是我的目标是只排一行(像这样)
自动化-X arn:aws:cloudformation:X X无PARAM_VALUE1 PARAM_VALUE2
也就是说,第一行也是唯一一行具有PARAM_VALUE1和PARAM_VALUE2。
有人可以帮助我吗?
我很感激, 预先谢谢你
我忘记指出命令的结果是多行(超过1000行),每行由6个参数组成
答案 0 :(得分:2)
表达式
Parameters[?ParameterKey==`PARAM_VALUE1`].ParameterValue
返回一个投影,该投影本身返回ParameterValue
s的一个数组。即使该数组仅包含一项,aws --output text
模式仍将其解释为新行。要解决此问题,您需要使用管道|
将投影转换为单个值以停止投影,然后选择数组中的第一项:
aws cloudformation describe-stacks --query 'Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==`PARAM_NAME1`].ParameterValue|[0],Parameters[?ParameterKey==`PARAM_NAME2`].ParameterValue|[0]]' --output text
您会看到|[0]
已添加到查询中的每个参数。