programing

한 줄에 여러 값 인쇄

lastmoon 2023. 3. 13. 20:48
반응형

한 줄에 여러 값 인쇄

JSON 문서를 해석하여 같은 줄에 몇 개의 값을 인쇄하려고 합니다.다음 문서를 참조할 수 있는 방법이 있습니까?

{
  "fmep": {
    "foo": 112,
    "bar": 234324,
    "cat": 21343423
  }
}

그리고 뱉는다:

112 234324

원하는 값을 얻을 수 있지만 각 값은 별도의 행에 인쇄됩니다.

$ echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | jq '.fmep|.foo,.bar'

112  
234324

이것을 어떻게 하는지 보여주는 예가 있다면 어떤 조언이라도 해주시면 감사하겠습니다.

예에서 가장 쉬운 방법은 스트링 보간과-r옵션.

echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | \
jq -r '.fmep| "\(.foo) \(.bar)"'

생산하다

112 234324

값을 배열에 배치하고 @tsv를 사용하는 것도 고려할 수 있습니다.

echo '{ "fmep": { "foo": 112, "bar": 234324, "cat": 21343423 } }' | \
jq -r '.fmep | [.foo, .bar] | @tsv'

탭으로 구분되어 있습니다.

112 234324

결합 출력을 사용한 구문을 다음에 나타냅니다.-j):

jq -j '.fmep | .foo, " ", .bar, "\n"' payload.json

예를 들어 JSON(example.json)은 다음과 같습니다.{ " hello " : world " , " foo " " " bar }

몇 개의 필드를 같은 행에 연결하려면 다음 작업을 수행합니다.

$ jq -j '.hello,.foo' example.json

이로 인해

worldbar

구분 기호를 추가하시겠습니까?띄어쓰기로 하자

$ jq -j '.hello," ",.foo' example.json

이로 인해

world bar

* jq 버전 1.5 이후를 사용하고 있는지 확인하세요.

언급URL : https://stackoverflow.com/questions/46131727/printing-multiple-values-on-the-same-line

반응형