programing

jq를 사용하여 JSON의 2개 필드를 구성합니다.

cafebook 2023. 4. 3. 21:44
반응형

jq를 사용하여 JSON의 2개 필드를 구성합니다.

사용하고 있다jq다시 포맷하기 위해JSON.

JSON 문자열:

{"channel": "youtube", "profile_type": "video", "member_key": "hello"}

원하는 출력:

{"channel" : "profile_type.youtube"}

명령:

echo '{"channel": "youtube", "profile_type": "video", "member_key": "hello"}' | jq -c '. | {channel: .profile_type + "." + .member_key}'

아래 명령어는 문자열을 연결하는 것으로 알고 있습니다.그러나 위와 같은 논리로 동작하지 않습니다.

echo '{"channel": "youtube", "profile_type": "video", "member_key": "hello"}' | jq -c '.profile_type + "." + .member_key'

jq만을 사용하여 결과를 얻으려면 어떻게 해야 합니까?

문자열 연결 코드 주위에 괄호를 사용합니다.

echo '{"channel": "youtube", "profile_type": "video", "member_key": "hello"}' \
 | jq '{channel: (.profile_type + "." + .channel)}'

다음은 Jeff가 제안한 대로 문자열 보간을 사용하는 솔루션입니다.

{channel: "\(.profile_type).\(.member_key)"}

예.

$ jq '{channel: "\(.profile_type).\(.member_key)"}' <<EOF
> {"channel": "youtube", "profile_type": "video", "member_key": "hello"}
> EOF
{
  "channel": "video.hello"
}

문자열 보간은 와 함께 동작합니다.\(foo)구문(셸과 유사)$(foo)콜)을 클릭합니다.
공식 JQ 설명서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/37710718/concat-2-fields-in-json-using-jq

반응형