试图用bash解析json文件

时间:2016-09-11 09:37:22

标签: json bash knife

Bash解析json文件。我需要从json文件中获取版本值shich,如下所示:

{
 "attributes": {
 },
  "groupings": {
 },
 "recipes": {
 },
 "version": "0.2.54",
"source_url": "",
"issues_url": "" 
}

但在其他服务器上看起来像这样(没有空格)

 "attributes": {},"groupings": {},"recipes":{},"version": "0.2.54","source_url": "","issues_url": ""}

我尝试使用" grep -Po"但是,如果没有空格,j不会工作,而不是尝试用sed& awk来解决这个问题,但是不会对带有空格的jsons进行处理。是否还有另一种方法可以做到这一点,并指出我试图在脚本中使用它并使用" knife ssh"来连接服务器。

1 个答案:

答案 0 :(得分:1)

使用jq,安装使用以下内容:

apt-get install jq

用法:

jq .version <filename>
"0.2.54"

请注意,我将整个jason复制到名为test的文件中。这意味着我在以下内容中添加了遗漏{

{"attributes": {},"groupings": {},"recipes":{},"version": "0.2.54","source_url": "","issues_url": ""}