Как я могу разобрать вывод JSON на оболочке?
Например, Amazon Web Services предоставляет интерфейс командной строки для получения статуса ваших экземпляров:
$ aws ec2 describe-instances <my_instance_id>
Но команда возвращает строку JSON. Вывод этой команды выглядит следующим образом:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
Существуют ли встроенные оболочки, которые можно использовать для анализа вывода JSON?
Например, я хотел бы зафиксировать в переменной оболочки FOO
следующее output["Reservations"]["SecurityGroups"][0]{"Foo"}
.
В случае, если это помогает, меня особенно интересуют решения, которые могут работать с Zsh.
--output text
если вы хотите разобрать в оболочке без использования внешних инструментов, таких как jshon
.
jshon
, я перешел по вашей ссылке Прочитав это, я могу только сказать, что я остался очень доволен, что я случайно услышал и установил jq
первым. Я думаю, что вам, возможно, также захочется услышать об этом, если вы этого еще не сделали - он не беспокоится обо всех этих параметрах командной строки и может выполнять свои собственные регулярные выражения - он даже позволяет вам объявлять функции и переменные, если вы хотите. Смотрите ответ здесь об этом, если вам интересно.