jq를 사용하여 JSON 파일에서 교체를 수행하고 싶습니다.

jq를 사용하여 JSON 파일에서 교체를 수행하고 싶습니다.

JSON 파일 자체 내에서 데이터 교체와 쉘 환경 교체(및 쉘 함수 호출)를 관리할 수 있는 JQ 함수를 설계하고 싶습니다. 예를 들어 이런 파일이 있는데...

{
    "services" : {
        "blah" : {
            "server" : "https://my.server.home",
            "role_id" : "ABC",
            "login" : {
                "path" : "v1/auth/approle/login",
                "connection_data" : {
                    "role_id" : "{{services.blah.role_id}}",
                    "secret_id" : "${BLAH_SECRET}.${MY_DEFINED_ENVVAR}"
                },
                "other" : "$( get_workspace )/ght"
            }
        }
    },
    "applications" : {
        "curl" : {
            "version" : "7.80"
        }
    }
}

다음과 같은 결과를 얻고 싶습니다.

{
  "services": {
    "blah": {
      "server": "my.server.home",
      "role_id": "ABC",
      "login": {
        "path": "v1/auth/approle/login",
        "connection_data": {
          "role_id": "ABC",
          "secret_id": "my-secret.xyz"
        },
        "other": "/abc/my_workspace/ght"
      }
    }
  },
  "applications": {
    "curl": {
      "version": "7.80"
    }
  }
}

그렇게 하면서 JSON 파일에 대한 내부 액세스를 설명하는 데 사용되는 태그를 제어하여 어떤 셸 함수와 셸 환경 변수를 실행해야 하는지 표시하는 데 사용되는 태그를 대체할 수 있기를 바랍니다.

내 생각에 올바른 방법은 jq를 사용하는 것입니다.걷다방법은 테스트에 적합한 기능과 함께 사용됩니다.행은 더 이상 변경되지 않을 때까지(즉, 모든 교체가 완료될 때까지) 여러 번 처리될 수 있습니다.

어떤 제안이 있으십니까? ? ?

관련 정보