首页 > 解决方案 > 用 jq grep 特定值

问题描述

{
  "Value": "test-CDB-CCP-CONSUL_ACL",
  "Key": "Name"
}
{
  "Value": "yes",
  "Key": "Schedule"
}
{
  "Value": "ENGINEERING-PLATFORM",
  "Key": "Department"
}
{
  "Value": "clustr.dev@tallysolutions.com",
  "Key": "Owner"
}
{
  "Value": "kalyan.g@tallysolutions.com",
  "Key": "Owner"
}
{
  "Value": "No",
  "Key": "Schedule"
}

大家好,我有上面的代码,我想显示下面的值如下

时间表,是的

时间表,否

我尝试了以下命令,但对我不起作用

aws ec2 描述实例| jq -r '.Reservations[].Instances[].Tags[].Values'

aws ec2 描述实例| jq -r '.Reservations[].Instances[].Tags[]'

标签: jq

解决方案


鉴于上面显示的输入,您将使用以下命令:

jq --slurp --raw-output 'map(select(.Key == "Schedule") | "\(.Key), \(.Value)") | .[]'

但是我不认为您发布的内容是您的实际输入;它可能是显示的两个命令之一的输出。如果是这种情况,那么从我的命令中获取map()并且可能是.[]并附加到你已经拥有的内容的末尾。


推荐阅读