jq
JSONファイルから値を取得できるように、いくつかのJSON解析を使用しようとしています。設定はJSONファイルがあり、jq
キーを手動で入力してコマンドを実行すると機能することです。ただし、or envを使用しようとすると--args
失敗します。null
パスワード
stripped_string=$(echo $key | tr -d '"' | tr -d ',')
jq -r --arg str "${stripped_string}" '.data."$str"' 1password.json
echo
正しい値が得られていることを確認し、それをキーに置き換えると正しく機能しますstripped_string
。$str
このコマンドを返される値のキーとして機能さjq
せるにはどうすればよいですか?stripped_string
情報を追加するには編集してください。
例$key
: 「JON_CONSUMER_KEY」
短縮された1password.json
"data": {
"JON_CONSUMER_KEY": "<value here>",
}
答え1
まず、データが有効なJSONであるとします。
{
"data": { "JON_CONSUMER_KEY": "<value here>" }
}
...ここはdata
最上位キーであり、JON_CONSUMER_KEY
次のようにユーザーが提供した文字列を使用して、そのキーのデコードされた(生)値を取得できます。data
$ mykey=JON_CONSUMER_KEY
$ jq -r --arg key "$mykey" '.data[$key]' file
<value here>
サブキーの値を抽出する構文を参照してくださいdata
。
.data."$key"
キーが次の場合に使用すると機能します。文字通り $key
。この鍵がなければ、自然に戻りますnull
。