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
.