es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Imprima un elemento específico de un objeto JSON de una matriz utilizando jq

Estoy describiendo un grupo de seguridad de AWS y pasando la salida por jq para obtener todos los CIDR de las reglas de entrada.

Hasta ahora he llegado a esto:

▶ aws ec2 describe-security-groups --group-ids sg-123456789 | jq '.SecurityGroups[0].IpPermissions[0].IpRanges'
[
  {
    "CidrIp": "11.22.33.44/32",
    "Description": "Algo"
  },
  {
    "CidrIp": "22.33.44.12/32",
    "Description": "Algo más"
  },
  {
    "CidrIp": "22.11.33.55/32",
    "Description": "Algo diferente"
  }
]

Sé que puedo usar grep, pero ¿hay alguna manera de obtener solo el CidrIp de cada elemento json de este array?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar la función map en jq para extraer solo el CidrIp de cada elemento del arreglo. El comando actualizado sería:

    ▶ aws ec2 describe-security-groups --group-ids sg-123456789 | jq '.SecurityGroups[0].IpPermissions[0].IpRanges | map(.CidrIp)'
    

    Esto devolverá un arreglo con solo los valores de CidrIp:

    [
      "11.22.33.44/32",
      "22.33.44.12/32",
      "22.11.33.55/32"
    ]
    

Comments are closed.