sfdx 차이|티 결과.json;
여기에서는 json 형식의 결과/응답을 얻고 이를 result.json 파일에 추가합니다. 아래는 내가 얻는 json입니다.
{
"status": 3,
"result": {
"source": {
"type": "folder",
"origin": "/source"
},
"target": {
"type": "folder",
"origin": "/target"
},
"difs": [
{
"type": "In Progress",
"entity": "Phone",
"result": "added"
},
{
"type": "Completed",
"entity": "SMS",
"result": "added"
},
{
"type": "Scheduled",
"entity": "Web",
"result": "added"
}
]
}
}
우리가 이것을 할 수 있는 방법이 있나요? 저는 쉘 스크립팅을 처음 접하므로 도와주세요.
답변1
현재 질문의 JSON 문서가 주어지면 다음 jq
명령은 이를 테이블 헤더를 포함하여 표시된 테이블 형식에 해당하는 CSV 형식으로 변환합니다.
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json
먼저 CSV로 변환해야 하는 각 행에 대한 값 배열을 만든 다음 내장 연산자를 사용하여 @csv
적절하게 참조되는 CSV 데이터를 만듭니다.
샘플 JSON 문서가 주어지면 출력은 다음과 같습니다.
"Status","Value","Result"
"In Progress","Phone","added"
"Completed","SMS","added"
"Scheduled","Web","added"
나중에 테이블을 만드는 데 사용하려는 스프레드시트 프로그램으로 가져올 수 있습니다.
cvslook
명령줄 CSV 구문 분석 도구 툴킷을 사용하여 이를 후처리하면 csvkit
테이블의 Markdown 변형을 얻을 수 있습니다.
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json |
csvlook
이것은 출력됩니다
| Status | Value | Result |
| ----------- | ----- | ------ |
| In Progress | Phone | added |
| Completed | SMS | added |
| Scheduled | Web | added |
마크다운으로 렌더링하면 다음과 같습니다.
상태 | 값 | 결과 |
---|---|---|
진행 중 | 전화 | 다음에 추가 |
충분히 | 짧은 메시지 | 다음에 추가 |
예약하다 | 회로망 | 다음에 추가 |