我正在尝试在Azure CLI中获取带有数字的表输出,并将其作为输出
Number Location Name
---------- ----------- -------------
1 somewhere ResourceGroup1
2 somewhere ResourceGroup2
我现在拥有的代码是
az group list --query '[].{location:location, name:name}'
我现在得到的输出是
Location Name
---------- ---------------
somewhere ResourceGroup1
somewhere ResourceGroup2
我的最终目标是,如果选择数字1,则选择名称,以便稍后在脚本中使用它
答案 0 :(得分:2)
对于您的问题,没有Azure CLI命令可以实现。但是您可以使用脚本来实现它。例如,您可以使用Shell脚本:
#!/bin/bash
az group list --query '[].{location: location, name: name}' -o table >> output.txt
# This command just add the line number inside the file, it's optional.
cat -n output.txt >> result.txt
# you can just get the group name with a specific line, the same result with output.txt
awk '{if (NR == line) print $3}' result.txt
希望这会有所帮助。
答案 1 :(得分:1)
据我了解,您正在尝试创建变量,以便以后在输出中使用。您无需先将其放在表格中。使用相同的示例,您可以执行以下操作;
gpname="$(az group list --query [0].name --output tsv)"
az group show -n $gpname
祝你好运.....
评论信息:
您正在寻找的是Linux,而不是Azure。我不是Linux CLI专家,但她是可以构建的基本脚本。
#!/bin/bash
gpnames="$(az group list --query [].name --output tsv)"
PS3='Select A number: '
select gpname in $gpnames
do
az group show -n $gpname
Done
希望这会有所帮助...
答案 2 :(得分:1)
您可以在过滤器中使用contains
表达式(jmespath)来过滤结果:
filter=resource_group_name
filterExpression="[?contains(name, '$filter')].name"
az group list --query "$filterExpression" -o tsv
与已经提出的答案相比,这是一种更好的方法。
更多阅读:
http://jmespath.org/specification.html#filterexpressions
http://jmespath.org/specification.html#built-in-functions