programing

bash에서 json 파일을 구문 분석하기 위해 jq 출력에서 이중 따옴표를 제거하는 방법은 무엇입니까?

lovejava 2023. 4. 29. 08:07

bash에서 json 파일을 구문 분석하기 위해 jq 출력에서 이중 따옴표를 제거하는 방법은 무엇입니까?

저는 여기에 나와 있는 것처럼 JSON 파일을 구문 분석하기 위해 jq를 사용하고 있습니다.그러나 문자열 값에 대한 결과는 다음과 같이 예상대로 "이중 따옴표"를 포함합니다.

$ cat json.txt | jq '.name'
"Google"

""를 제거하기 위해 이것을 다른 명령으로 연결하려면 어떻게 해야 합니까? 그래서 저는 다음을 얻습니다.

$ cat json.txt | jq '.name' | some_other_command
Google

무엇을some_other_command제가 써도 될까요?

사용-r(또는)--raw-output원시 문자열을 출력으로 내보내는 옵션:

jq -r '.name' <json.txt

그래서 다음을 포함하는 파일의 경우{"name": "Google"}그렇다면 그렇습니다

sample='{"name":"Google"}'
echo $sample| jq '.name'

"Google"

사용.--raw-input도와준다

echo $sample| jq --raw-output '.name'

Google

하지만 제가 이 질문을 우연히 발견한 이유는--raw-output이와 같은 json 배열로.

sample='[{"name":"Yahoo"},{"name":"Google"}]'
echo $sample | jq --raw-output 'map(.name)'

[
  "Yahoo",
  "Google"
]

그리고 저는 왜 인용문이 남아있는지 이해할 수 없었습니다.는 이 게시물을 우연히 발견했고, 이제 저는 다음을 추가하는 것을 압니다.| .[]묘기를 부립니다!

echo $sample | jq --raw-output 'map(.name)| .[]'

Yahoo
Google

언급URL : https://stackoverflow.com/questions/44656515/how-to-remove-double-quotes-in-jq-output-for-parsing-json-files-in-bash