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を使用することです。歩くこの方法は、テストに適した機能とともに使用されます。ひも行は変更されなくなるまで(つまり、すべての交換が完了するまで)複数回処理できます。

どんな提案がありますか? ? ?

ベストアンサー1

おすすめ記事