我想要得到这个:
[
["John Black",[
["Lorem ipsum dolor sit amet.",27],
["Ut tempus lectus ut mi.",23]
]],
["Peter Pan",[
["Quisque pulvinar odio.",22],
["Nec ut lorem quis interdum elit.",32]
]],
["Gary Halbert",[
["Placerat aliquam.",17]
]],
["Richard Gere",[
["Porttitor commodo fermentum.",28]
]]
]
直到现在,这就是我得到的:
export A=$(cat <<'EOL'
[
["John Black",["Lorem ipsum dolor sit amet.",27]],
["Peter Pan",["Quisque pulvinar odio.",22]],
["John Black",["Ut tempus lectus ut mi.",23]],
["Gary Halbert",["Placerat aliquam.",17]],
["Peter Pan",["Nec ut lorem quis interdum elit.",32]],
["Richard Gere",["Porttitor commodo fermentum.",28]]
]
EOL
)
echo "$A" | jq 'map({(.[0]): .[1]}) | add'
结果:
{
"John Black": [
"Ut tempus lectus ut mi.",
23
],
"Peter Pan": [
"Nec ut lorem quis interdum elit.",
32
],
"Gary Halbert": [
"Placerat aliquam.",
17
],
"Richard Gere": [
"Porttitor commodo fermentum.",
28
]
}
我正在使用jq-1.5。 有任何想法吗?感谢。
答案 0 :(得分:2)
这是减速器的合适用例。下面的大多数内容与加入共享密钥下的项目有关,而不是将它们转换为所需的嵌套列表形式:
jq -n '[
inputs |
reduce .[] as $item ({}; .[$item[0]] += [$item[1]]) |
to_entries |
.[] |
[.key, .value]
]' <<<"$A"
...作为输出产生(仅针对空格编辑紧凑性):
[
["John Black", [["Lorem ipsum dolor sit amet.", 27], ["Ut tempus lectus ut mi.",23]]],
["Peter Pan", [["Quisque pulvinar odio.",22], ["Nec ut lorem quis interdum elit.", 32]]],
["Gary Halbert", [["Placerat aliquam.", 17]]],
["Richard Gere", [["Porttitor commodo fermentum.", 28]]]
]
答案 1 :(得分:0)
Couchdb引擎只是附加,这意味着每个文档都会被Couchdb附加到文件管理器中,并且每个文件都与数据库相关。
要正确使用,请考虑如何避免同一文档中的更新,请记住所有修订都将是存储。
我对每个文件的建议。
{
"name": "John Black",
"entries": [
{
"test": "Lorem ipsum dolor sit amet.",
"value": 27
},
{
"text": "Ut tempus lectus ut mi.",
"value": 23
}
],
"type": "user"
}