방법을 못하게 jq 해석 줄 바꿈 문자로 내보낼 때 CSV

0

질문

로 변환하고 싶은 다음 JSON 콘텐츠에 저장된 파일 tmp.json

{
    "results": [
        [
           {
               "field": "field1",
               "value": "value1-1"
           },
           {
               "field": "field2",
               "value": "value1-2\n"
           }
        ],
        [
           {
               "field": "field1",
               "value": "value2-1"
           },
           {
               "field": "field2",
               "value": "value2-2\n"
           }
        ]
    ]
}

CSV 출력

"field1","field2"
"value1-1","value1-2\n"
"value2-1","value2-2\n"

내가 사용하는 경우 이 jq 명령,그러나,

 cat tmp.json | jq -r '.results | (first | map(.field)), (.[] | map(.value)) | @csv'

이것을 얻을 결과:

"field1","field2"
"value1-1","value1-2
"
"value2-1","value2-2
"

하는 방법 jq 명령을 작성할을 얻을 원하는 CSV 결과는?

export-to-csv jq json
2021-11-24 06:09:08
2

최고의 응답

3

에 대한 jq-유일한 솔루션을 사용할 수 있습니다 gsub("\n"; "\\n"). 나는 뭔가 다음과 같다:

.results
| (.[0] | map(.field)),
  (.[]  | map( .value | gsub("\n"; "\\n")))
| @csv

를 사용하여 귀하의 JSON 호출이-r 명령행 옵션은 결과가 생성됩니다.

"field1","field2"
"value1-1","value1-2\n"
"value2-1","value2-2\n"
2021-11-24 06:57:07
1

는 경우 줄 바꿈이 있는 것만을 처리할 수 있는,어쩌면 당신이 할 수 있는 문자열을 바꿀 수 있습니다.

cat tmp.json | jq -r '.results | (first | map(.field)), (.[] | map(.value) | map(gsub("\\n"; "\\n"))) | @csv'
2021-11-24 06:48:27

@rchrome,이인 Segmentation fault (core dumped) 내 CentOS7 기계입니다. 을 확인하세요.
hermit.crab

hmm 재미있다,그것은 작품에서 우분투 16.04 기계 jq 버전 1.5.1
rchome

@rchrome,편집한 솔루션을 작동에 나 CentOS7 기계입니다. 감사합니다.
hermit.crab

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................