此问题在此处已有答案:
How to use jq when the variable has reserved characters?(3个答案)
4天前关闭。
我有一个json文件,看起来像这样:
{
"list": {
"foo": {
"host": "www.someurl1.com"
},
"bar": {
"host": "www.someurl2.com"
},
"baz": {
"host": "www.someurl3.com"
},
"foo-beta": {
"host": "www.someurl4.com"
}
},
"currentServer": "foo-beta"
}
当"currentServer"
的值为"foo"
或"bar"
或"baz"
时,我可以使用以下代码读取它(对于foo):
jq .list.foo.host test.json
但是,当"currentServer"
的值为"foo-beta"
时,意味着任何包含'-'
字符的内容都会出错。
jq .list["foo-beta"].host test.json
或者
jq .list.foo-beta.host test.json
或者
jq .list | .["foo-beta"].host test.json
我是一名嵌入式软件工程师,通常使用C语言进行低级编程,以前很少使用jq
,由于目标平台有此要求,因此限制是使用jq
。
另外,是否有一种方法可以提供一个jq
命令用法,使我能够读取'“currentServer”'并按如下方式传递它,或者类似的方法:
CURR_SERVER=jq currentServer test.json
CURR_SERVER_URL=jq .list.$CURR_SERVER.host test.json
我使用的jq
版本是v1.6。
1条答案
按热度按时间f4t66c6m1#