【发布时间】:2019-01-26 11:43:47
【问题描述】:
我发现jq 非常有助于将 tsv 转换为 JSON 文件,但是,当我的 tsv 中有数组时,我想弄清楚如何使用 jq 进行操作:
name age pets
Tim 15 cats,dogs
Joe 11 rabbits,birds
...
理想的 JSON:
[
{
name: "Tim",
age: "15",
pet:["cats","dogs"]
},
name: "Joe",
age: "11",
pet:["rabbits","birds"]
}, ...
]
这是我试过的命令:
cat file.tsv | jq -s --slurp --raw-input --raw-output 'split("\n") | .[1:-1] | map(split("\t")) |
map({"name": .[0],
"age": .[1],
"pet": .[2]})'
上述命令的输出为:
[
{
name: "Tim",
age: "15",
pet:"cats,dogs"
},
name: "Joe",
age: "11",
pet:"rabbits,birds"-
}, ...
]
【问题讨论】: