gpt4 book ai didi

json - jq:在 shell 脚本中使用 - 字符访问字段

转载 作者:行者123 更新时间:2023-12-01 05:17:09 26 4
gpt4 key购买 nike

我正在尝试使用 shell 脚本中的 jq 从以下 json 访问字段“my-tag”:

json文件:

{
"tag": {
"value": "hello"
},
"my-tag": {
"value": "hello-my-tag"
}
}

shell 脚本:

#!/bin/bash
main()
{
search="my-tag"
file="myjson.json"
value=($(jq ".$search.value" "$file"))
echo $value
}

main "$@"

执行此脚本时,出现以下错误:

error: tag is not defined
.-tag.value
^^^
1 compile error

如何在 shell 脚本中正确提取字段?

最佳答案

作为一般经验法则,我强烈建议不要将 shell 变量放置在您的过滤器中,而是使用参数来传递它们。

jq --arg search "$search" '.[$search].value' "$file"

您的过滤器字符串相当于一个脚本。您不希望每次更改值时都修改脚本,而是将其参数化。

关于json - jq:在 shell 脚本中使用 - 字符访问字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338427/

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