json - 如何将两个不同的jq语句的行编织在一起
问题描述
我有以下 jq 声明:
cat main.json | jq .hits.hits[] | jq -c '{"index":{"_index": ._index, "_type": ._type, "_id": ._id}}'
这给了我类似的东西:
{"index":{"_index":"main","_type":"default","_id":"64"}}
{"index":{"_index":"main","_type":"default","_id":"65"}}
还有另一个 jq 声明:
cat main.json | jq .hits.hits[] | jq -c '._source'
这给了我类似的东西:
{"mainContentOfPage":"hidden","informationType":"Product","url":"hidden","_id":"64"}
{"mainContentOfPage":"hidden","informationType":"Product","url":"hidden","_id":"65"}
现在我想组合这些语句,以便在连续的行上获得它们的结果,如下所示:
{"index":{"_index":"main","_type":"default","_id":"64"}}
{"mainContentOfPage":"hidden","informationType":"Product","url":"hidden","_id":"64"}
{"index":{"_index":"main","_type":"default","_id":"65"}}
{"mainContentOfPage":"hidden","informationType":"Product","url":"hidden","_id":"65"}
这将允许我使用Elasticsearch 的 Bulk API对这些进行索引。
如何结合这两个语句来给我想要的结果?
解决方案
使用逗号(另外,我已经简化了键值选择器以使用简写语法):
jq -c '.hits.hits[] | { index: { _index, _type, _id } }, ._source' main.json
推荐阅读
- python-3.x - 强制执行 DataFrame 类型并允许 NaN
- android - 是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?
- tfs - 有没有办法从构建我的工件的源文件或文件夹名称中抓取变量信息?
- c - 如何以编程方式将 S/MIME 证书应用于 Outlook(Windows、C/C++)
- apache2 - 如何在 apache2 中部署 antd-admin 仪表盘?
- excel - 根据条件在给定文件夹/子文件夹中查找 xlsm 工作簿的宏,然后检查每个工作簿中的值
- c# - 试图从连接到网络上另一台 PC 的打印机上打印条形码。可以打印测试页
- node.js - VSCode调试launch.json skipFiles排除文件夹
- vue.js - 使用 axios 获取 ERR_CERT_AUTHORITY_INVALID
- python - 如何使用return语句修复函数不返回所有行