2014-03-13 4 views
-1

내 쉘 스크립트에서 이런 일이 : 그래서JQ - 구문 분석 데이터

Classes : 32.56351 
Conditionals : 9.505888 

와 모든 다른 값 : 나는 그것을 밖으로 이런 일을 추출해야

"{ \"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\" }" 

어떤 배열이나 varaible에 저장하십시오. jq json 파서를 사용하려고 생각하고 있습니다. http://stedolan.github.io/jq/

답변

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