如何解析Shell上的JSON输出?
例如,Amazon Web Services提供了一个CLI来检索实例的状态:
$ aws ec2 describe-instances <my_instance_id>
但是该命令返回JSON字符串。该命令的输出如下所示:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
是否有可用于解析JSON输出的shell内置程序?
例如,我想在shell变量中捕获FOO
以下内容output["Reservations"]["SecurityGroups"][0]{"Foo"}
。
如果有帮助,我对Zsh可能适用的解决方案特别感兴趣。
--output text
,如果你想在shell来解析,而无需使用外部工具,如jshon
。
jshon
第一次才听说,我关注了您的链接。读完这些之后,我只能说我很高兴我偶然听到并jq
首先安装了该软件。我想您可能还想听听它,如果您还没有听说过的话-它不会打扰所有这些命令行开关,并且可以执行自己的正则表达式-甚至允许您根据需要声明函数和变量。如果您有兴趣,请参阅此处的答案。