jq를 사용하여 JSON 데이터를 구문 분석하고 명령 줄 인수로 제공된 동적 키 값을 기반으로 값을 추출합니다. 나는 이것이 작동한다는 것을 알았지 만, 작은 따옴표 안에서 $v
을 보간하는 방법에 대해 회의적입니다. 식 '.["\($v)"]'
을 큰 따옴표 안에 다시 쓰는 것이 가능합니까? 내가 도대체 뭘 잘못하고있는 겁니까?jp를 사용하여 보간 문자열 사용
어떤 이유로 작동하지 않습니다 다음 시도 :
recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key" ".[\"\\($v)\"]")
그러나, 이것은 않습니다 : 당신은 $v
을 탈출하지 않은
recipe_key='Wilted Greens' # example key to interpolate
recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key" '.["\($v)"]') # works!
두 사람 모두 맞고 문제에 대한 두 가지 시각을 얻을 수있었습니다. 초점을 맞추는 가장 중요한 이유는 큰 따옴표를 사용하는 길을 계속해서 그로부터 답을 얻는 것이 잘못되었다는 것입니다. 그것이 Stackoverflow를 훌륭하게 만듭니다. 확실한 답변을 얻는 것보다는 답변에 도달하는 것이 중요합니다. – theGrayFox
"좋은"과 "나쁜"에 대해서는 아무 말도하지 않았습니다. 나는 작은 따옴표가 그가 피하려고했던 것과 정확히 일치하는 보간을 피하고 어떤 보간이 그가 올린 정확한 * 문제인지를 알기 위해 왜 OP가 큰 따옴표를 사용하기를 원하는지에 대한 이해가 부족함을 지적했다. –
@EtanReisner 내 요점은 중요하지 않다는 것입니다. ** 그가 ** 나쁜 방식으로하고 싶어하는 이유입니다. 내가 그랬던 것처럼 그에게 "나쁜"방법을 보여 주며, 원할 경우 "더 나은"방법을 제시하고 결정하게하십시오. –