마지막 줄에서 두 번째 줄에 JSON 스니펫을 추가하세요.

마지막 줄에서 두 번째 줄에 JSON 스니펫을 추가하세요.

다른 JSON 파일(main.json)의 두 번째 줄에 다음 JSON 조각(들여쓰기 및 모두 포함)을 추가하고 싶습니다.

추가할 JSON 조각

"extendedProperties": {
        "AppID": {
          "values": [
            "12345"
          ]
        }

방법

  1. 변수에 스니펫을 추가합니다(예: snippet=cat toAddintoConnection.txt
  2. 정확하게 테스트 echo "$snippet"및 나열됨(들여쓰기 포함)
  3. sed '$i"$snippet"' main.json- 결과적으로 "$snippet"두 번째 줄부터 마지막 ​​줄까지 문자 그대로 인쇄됩니다.

귀하의 지도에 진심으로 감사드립니다. 감사해요. 프라카시

답변1

JSON 문서에서는 들여쓰기, 줄 바꿈 및 키와 값 사이의 기타 공백이 중요하지 않습니다. 또한 키의 순서는 중요하지 않습니다.

다음을 사용하여 jq명령줄에서 추가 최상위 키와 해당 값을 추가합니다 .

jq '.extendedProperties = { AppID: { values: [ "12345" ] } }' main.json

AppID쉘 변수 에서 문자열을 가져옵니다.

id=12345

jq --arg AppID "$id" '.extendedProperties = { AppID: { values: [ $AppID ] } }' main.json

파일에서 데이터를 추가하기 위해 toAddintoConnection.txt올바른 형식의 JSON 문서를 추가한다고 가정해 보겠습니다.

{
  "extendedProperties": {
    "AppID": {
      "values": [
        "12345"
      ]
    }
  }
}

또는 동등하게,

{"extendedProperties":{"AppID":{"values":["12345"]}}}

main.json... 다음과 같이 기존 JSON 문서에 추가할 수 있습니다 .

jq -s 'add' main.json toAddintoConnection.txt

관련 정보