我可以使用以下jq命令生成两个文件:
cat test.json | jq '{ "index" : { "_index" : "items1", "_id" : .hits.hits[]._source.item_id } }' -c > test_itemids.json
和
cat test.json | jq '.hits.hits[]._source' -c > test_source.json
结果,我得到以下两个文件:
{"index":{"_index":"items1","_id":8021096}}
{"index":{"_index":"items1","_id":8021446}}
{"index":{"_index":"items1","_id":8023950}}
...
和
{source1...}
{source2...}
我的目标是生成一个包含以下内容的文件:
{"index":{"_index":"items1","_id":8021096}}
{source1...}
{"index":{"_index":"items1","_id":8021446}}
{source2...}
{"index":{"_index":"items1","_id":8023950}}
...
如何将上面的jq命令组合成一个生成一个文件的命令?
,
是你的朋友:
.hits.hits[]._source
| (., {"index" : { "_index" : "items1", "_id" : .item_id } })
(外部括号可以省略,但包括在内,以防使事情更清晰。