json - 如何将多个参数传递给jq?
问题描述
我正在尝试编写一个新的 json 文件。我想定义多个变量,然后通过管道将它们设置为新 json 文件中的不同属性。
jq --arg dnb "$DOMAIN_NAME_BUILT" --arg origin "$DOMAIN_ID_BUILT" \
'.Origins.Items[0].DomainName = $dnb' | '.Origins.Items[0].Id = $origin' distconfig.json > "$tmp" && mv "$tmp" distconfig.json
这仅适用于一个变量:--arg NAME VALUE 模式,但是当我添加第二个 arg 并使用管道jq ... 'x1 = y1 | x2 = y2, e.g.
时,它会中断。
解决方案
管道应在过滤器内。并且,考虑使用赋值运算符来缩短您的代码:
jq --arg dnb "$DOMAIN_NAME_BUILT" \
--arg origin "$DOMAIN_ID_BUILT" \
'.Origins.Items[0] |= ( .DomainName = $dnb | .Id = $origin )' \
distconfig.json > "$tmp" && mv "$tmp" distconfig.json
推荐阅读
- javascript - 如何在循环中按顺序运行请求?
- reactjs - 在 JSX 事件处理函数参考中何时以及何时不使用“this”?
- java - 我怎么知道我的顶点有连接?
- c# - 读取和写入同一个 Excel 文件
- angular - Angular 7:如何从 iframe 访问 URL 中的查询字符串?
- laravel - 在 laravel 刀片文件中检查变量为空
- jboss-arquillian - Arquillian cube:启动多个图像的问题
- git - Jenkins SCM 轮询在 AWS Linux 18.04.1 上托管时不起作用
- mysql - 将“执行语句”结果放入 MySQL 中的变量中
- python - Python Jaro–Winkler 相似性循环优化