如何使用jq产生两条后续的生产线?



我可以使用以下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  } })

(外部括号可以省略,但包括在内,以防使事情更清晰。

最新更新