I am trying to get this:
[
["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]
]]
]
Till now, this is what I got:
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'
Resulting this:
{
"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
]
}
I am using jq-1.5. Any ideas? Thanks.
exportis utterly unneeded here; it's using a limited resource unnecessarily (environment variables are stored in the same space used for the argument vector, so when you export a shell variable you're decreasing your maximum command-line length for all subprocesses of that shell).