¿Cómo puedo analizar la salida JSON en el shell?
Por ejemplo, Amazon Web Services proporciona una CLI para recuperar el estado de sus instancias:
$ aws ec2 describe-instances <my_instance_id>
Pero el comando devuelve una cadena JSON. La salida de ese comando se ve así:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
¿Hay incorporados shells que podrían usarse para analizar la salida JSON?
Por ejemplo, me gustaría capturar en una variable de shell FOO, lo siguiente output["Reservations"]["SecurityGroups"][0]{"Foo"}.
En caso de que ayude, estoy específicamente interesado en soluciones que puedan funcionar desde Zsh.
--output textsi desea analizar en el shell sin utilizar herramientas externas como jshon.
jshonpor primera vez, seguí tu enlace. Después de leer eso, solo puedo decir que me fui muy contento de que, por casualidad, me enteré e instalé jqprimero. Creo que a usted también le gustaría escucharlo si aún no lo ha hecho, ya que no se molesta con todos esos interruptores de línea de comandos y puede hacer sus propias expresiones regulares, incluso le permite declarar funciones y variables si lo desea. Vea la respuesta aquí si está interesado.