gpt4 book ai didi

linux - 使用 jq 插入字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:52 27 4
gpt4 key购买 nike

我正在使用 jq 来解析 JSON 数据,并根据作为命令行参数给出的动态键值提取一个值。我注意到这行得通,但我怀疑它是如何在单引号内插入 $v 的。是否可以在双引号内重写表达式 '.["\($v)"]'?我做错了什么?

无论出于何种原因,尝试以下操作均无效:

recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key"".[\"\\($v)\"]")

但是,这样做:

recipe_key='Wilted Greens' # example key to interpolate

recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key" '.["\($v)"]') # works!

最佳答案

您还没有对 $v 进行转义,所以 Bash 认为它是一个 Bash 变量,可能是一个空变量。试试这个

".[\"\\(\$v)\"]"
# ^
# |
# --- notice

在我看来,在这种情况下最好使用带单引号的 use --arg--arg 的实现类似于 awk -v,以解决这种引用令人头疼的情况。

关于linux - 使用 jq 插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com