我有一个这种类型的json:
{
"_index": "indexeer",
"_type": "_doc",
"_id": "3233233233",
"_score": 1,
"_source": {
"Bibtex": {
"Article": {
"AuthorList": [
{
"Affiliation": {
"Affiliation": "Title content, Hematology and Hepatology Honorary Fellow, Honorary Member, American Society. xxxyyy@hotmail.com."
}
}
]
}
}
}
}
我使用jq
得到Affiliation
,如下所示:
jq -r '._source.Bibtex.Article.AuthorList[]? | .Affiliation.Affiliation | .[0:rindex(" Electronic address:")]' results.json
它工作得很好,给了我所需要的联系。
但是,我现在还需要id
字段,并生成如下所示的csv:
"3233233233", "Title content, Hematology and Hepatology Honorary Fellow, Honorary Member, American Society"
我可以单独获得ID,很容易,如下所示:
jq -r '._id' results.json
但是,如何合并这两个查询以生成包含id
和affiliation
的单个输出呢?
实际上,我希望将这两个查询组合起来。
2条答案
按热度按时间2nbm6dog1#
使用
._id as $id
将id
保存为变量,然后可以在任何需要的地方使用$id
:输出:
i86rm4rw2#
使用
[]
从两个元素构造一个数组,并使用@csv
转换为CSV:输出:
多个作者将作为列添加到CSV中。
jq允许你把多个数组连接成一个数组,这是毫无价值的,连接流产生笛卡尔积,例如
[1]+[2]
产生[1,2]
,[1]+([2],[3])
产生[1,2][1,3]
(一个包含两个数组的流),你可以利用这个事实产生多个输出行,而不必先在变量中捕获id: