현재 유효한 Json이있는 파일로 JQ가있는 컬 출력을 성공적으로 내보내고 있습니다.json 파일 객체를 jq가있는 별도의 json 파일로 필터링
주석은 아래 :
jsonValues = <curl command> | jq '.["issues"] | map({key: .key, type: .fields.issuetype.name, typeid: .fields.issuetype.id, status: .fields.status.name, summary: .fields.summary})' > FullClosedIssueList.json
; `
당신은 내가이 하나의 명령으로 두 가지 일을하고 있어요 것을 볼 수 있습니다
jsonValues
에 모든 결과를 퍼팅.FullClosedIssueList.json
으로 내보내기.
은 내가 jsonValues
객체가 [
, ]
및 ,
누락 포맷 된 것을 찾을 수 있습니다.
{
"key": "ON-12345",
"type": "Bug",
"typeid": "1",
"status": "Closed",
"summary": "Some Bug Title"
}
{
"key": "ON-12346",
"type": "Bug",
"typeid": "1",
"status": "Closed",
"summary": "Some Other Bug Title"
}
반면 파일 출력은 유효한 json입니다.
[
{
"key": "ON-12345",
"type": "Bug",
"typeid": "1",
"status": "Closed",
"summary": "Some Bug Title"
},
{
"key": "ON-12346",
"type": "Bug",
"typeid": "1",
"status": "Closed",
"summary": "Some Other Bug Title"
}
]
bash 변수로 전달 된 객체가 유효한 json이되도록 JQ에 추가해야하는 명령은 무엇입니까?
편집 :이
당신은'하고있다 echo $ jsonValues' 또는'echo "$ jsonValues"'? 일반적으로 변수를 항상 dbl-quote하고 싶을 것입니다. 행운을 빕니다. – shellter
jsonValues가 CURL 명령의 출력으로 설정되고 문자열 "jsonValues ="가 jq로 공급됩니다. 이는 유효한 JSON이 아니기 때문에 실패합니다 ... 이것이 JIRA에 관한 것이라면 실패합니다 REST API의 유효한 JSON은 CURL 호출에서 반환되어야합니다 (https://developer.atlassian.com/display/JIRADEV/JIRA+REST+API+Example+-+Query+issues#JIRARESTAPI 예제 - 쿼리 - 응답) –
I 그 변수의 값이 * 놀랍습니다. 파일에 저장하고 ** 출력을 변수에 저장하려면'tee'를 다음과 같이 사용하십시오 :'output = $ (some command | tee filename)'- $ 출력은 다음과 같은 내용을 가져야합니다. 파일''FullClosedIssueList.json jq ''를 쓰더라도 –