Como posso analisar a saída JSON no shell?
Por exemplo, o Amazon Web Services fornece uma CLI para recuperar o status de suas instâncias:
$ aws ec2 describe-instances <my_instance_id>
Mas o comando retorna uma sequência JSON. A saída desse comando se parece com isso:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
Existe algum shells embutido que possa ser usado para analisar a saída JSON?
Por exemplo, eu gostaria de capturar em uma variável de shell FOOo seguinte output["Reservations"]["SecurityGroups"][0]{"Foo"}.
Caso isso ajude, estou especificamente interessado em soluções que poderiam funcionar com o Zsh.
--output textse você deseja analisar no shell sem usar ferramentas externas como jshon.
jshonpela primeira vez, segui seu link. Depois de ler isso, só posso dizer que fiquei muito satisfeito por ter ouvido e instalado por acaso jqprimeiro. Eu acho que você gostaria de ouvir sobre isso também, se ainda não o fez - não se incomoda com todas essas opções de linha de comando e pode fazer suas próprias expressões regulares - até permite que você declare funções e variáveis, se desejar. Veja a resposta aqui sobre isso, se você estiver interessado.