【问题标题】:JQ select and passing argumentsJQ 选择和传递参数
【发布时间】:2020-01-13 16:41:56
【问题描述】:

我正在尝试将变量传递给 JQ,但以下代码未按预期工作:

echo '{
   "app": "K8s",
   "version": "1.8",
   "date": "2018-10-10"
}' | jq --arg app 'K8s' -c 'select(.app == [$app]).version'

但是,以下示例有效:

echo '{
   "app": "K8s",
   "version": "1.8",
   "date": "2018-10-10"
}' | jq -r --arg app app 'select(.[$app] == "K8s").version'

为什么第一个例子不起作用?

谢谢

【问题讨论】:

    标签: bash select filter arguments jq


    【解决方案1】:

    在第一个例子中,[$app] 是错误的:这个表达式产生了一个数组。 jq 程序应该是:

    select(.app == $app).version
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2013-11-04
      • 2016-04-17
      • 2018-04-26
      相关资源
      最近更新 更多