-1

我的 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\": \"Methods\" } { \"ratio\": 43.75, \"name\": \"Packages\" }"

我需要从中提取类似的东西:

Classes : 32.56351
Conditionals : 9.505888

对于所有其他值,依此类推,并将其存储在某个数组或变量中。我正在考虑使用 jq json 解析器:http ://stedolan.github.io/jq/

4

1 回答 1

2

我认为你json的无效。我删除了边缘双引号并取消了其余的双引号,例如:

{ "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
于 2014-03-13T23:15:13.773 回答