【发布时间】:2018-12-27 14:17:14
【问题描述】:
我有一个 test.json 文件,其中包含以下属性。
"solr.baseuri":"http://10.201.17.8:80"
如果我们使用 jq 命令解析确切的变量(solr.baseuri)名称,我们将获得以下脚本的预期输出。
Shell 脚本:
#!/bin/bash
key=`solr.baseuri`
value=`cat test.json |jq '."solr.baseuri"' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"`
echo "solr value is $value"
输出:
solr value is 10.201.17.8
不确定如何在脚本中使用带有 jq 命令的 $key 来显示值。尝试使用以下不起作用的命令
value=`cat test.json |jq '."${key}"' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"`
【问题讨论】:
-
您是否试图摆脱输出中的文字引号?将
-r传递给jq将发出一个原始值,因此不包含它们。
标签: json bash awk environment-variables jq