【问题标题】:How to get the data in a single line in a shell script如何在 shell 脚本中的一行中获取数据
【发布时间】:2014-04-01 20:27:28
【问题描述】:

我正在使用Amazon Cli tools 编写ec2 audit script。我想从ec2-describe-instances 中获取tags like name, owner, cost centre

我正在使用这个命令:

ec2-describe-instances | grep -i "tag" | grep -i -e "name" -e "owner" -e "cost.centre"

请帮忙

【问题讨论】:

  • 它以非格式化的方式提供段落中的数据
  • 更新您的问题以显示您的预期输出?
  • 是的,或者我想拥有像实例 ID、名称、所有者等这样的标题,那么就有价值
  • 您首先要求输出单行,现在您要求顶部的标题和底部的值。我对你想要什么输出感到困惑。在您的问题中明确说明您的要求。发布涵盖不同场景的样本数据。某些标签是否缺少名称或所有者?

标签: linux bash shell amazon-web-services amazon-ec2


【解决方案1】:

您可以将现有命令通过管道传输到awk 以进行格式化...

ec2-describe-instances | grep -i "tag" | grep -i -e "name" -e "owner" -e "cost.centre" | awk 'BEGIN{FS=OFS="\t"}{a[$1 FS $2 FS $3]=a[$1 FS $2 FS $3]?a[$1FS$2FS$3] FS $4 FS $5:$4 FS $5}END{for(x in a) print x, a[x]}'

【讨论】:

  • @user3086014 确保您复制的命令与我上面给出的完全一样。
  • 是的,我已经完全复制了命令,我应该将所有这些都写在 shell 脚本中吗?
  • @user3086014 看起来您在粘贴多行命令时遇到了问题。我将答案修改为全部在一行中。试试看是否有帮助。不,您不需要 shell 脚本。您可以在命令行上运行它。
  • 我已经尝试过,在某些情况下,所有者标签首先出现,而其他名称首先出现,还有另一个问题。这是否可能我们可以使用名称、所有者、实例 ID、成本中心作为标题并在值下方,如果标签为空白,则应留空或填充为 NULL。
  • 我有另一个命令 ec2-describe-instances |awk 'BEGIN{IGNORECASE=1}/(name|owner|cost.center)/&&/tag/' 我们可以将 i 单个实例的值写在一行中吗?
猜你喜欢
  • 2013-08-04
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多