Json JQ-解析数据
我的shell脚本中有类似的内容:Json JQ-解析数据,json,bash,shell,jq,Json,Bash,Shell,Jq,我的shell脚本中有类似的内容: "{ \"ratio\": 32.56351, \"name\": \"Classes\" } { \"ratio\": 9.505888, \"name\": \"Conditionals\" } { \"ratio\": 36.30363, \"name\": \"Files\" } { \"ratio\": 13.349417, \"name\": \"Lines\" } { \"ratio\": 19.908062, \"name\": \"Meth
"{ \"ratio\": 32.56351, \"name\": \"Classes\" } { \"ratio\": 9.505888, \"name\": \"Conditionals\" } { \"ratio\": 36.30363, \"name\": \"Files\" } { \"ratio\": 13.349417, \"name\": \"Lines\" } { \"ratio\": 19.908062, \"name\": \"Methods\" } { \"ratio\": 43.75, \"name\": \"Packages\" }"
我需要从中提取类似的内容:
Classes : 32.56351
Conditionals : 9.505888
依此类推所有其他值,并将其存储在某个数组或变量中。我正在考虑使用jqjson解析器:我认为您的
json
无效。我删除了edge双引号,并取消了其余的双引号,如:
{ "ratio": 32.56351, "name": "Classes" } { "ratio": 9.505888, "name": "Conditionals" } { "ratio": 36.30363, "name": "File" } { "ratio": 13.349417, "name": "Lines" } { "ratio": 19.908062, "name": "Methods" } { "ratio": 43.75, "name": "Packages" }
使用它,您可以尝试使用字符串插值,如:
jq -r '"\(.name): \(.ratio)"' infile
这将产生:
Classes: 32.56351
Conditionals: 9.505888
File: 36.30363
Lines: 13.349417
Methods: 19.908062
Packages: 43.75