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"来连接服务器。
答案 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": ""}