【发布时间】:2019-03-10 11:48:37
【问题描述】:
我有一个元素流 object_count.json 看起来像:
{
"name":"apple",
"count":10
}
{
"name":"potato",
"count":18
}
{
"name":"stone",
"count:7
}
与流分开,我有两个文件,每个文件都列出了其类对象的名称:
cat fruits.txt
apple
peach
cat vegetables.txt
potato
tomato
如何构造一个流,其中来自object_count.json 的每个对象都带有其各自的类名?即:
{
"name":"apple",
"count":10
"class":"fruit"
}
{
"name":"potato",
"count":18
"class":"vegetable"
}
{
"name":"stone",
"count":7
"class":"other"
}
我们可以假设object_count.json 中的每个对象名称只有一个条目。
我最喜欢这样的解决方案:
- 适用于 3、4 和更多类 - 每个仍然列在单独的文件中;如果每个类都是硬编码的就可以了
-
object_count.json被视为输入流,而{fruits|vegetables}.txt分别作为单独的--rawfile参数提供
JQ 报告的版本:
$ jq --version
jq-1.6
我设法将类文件作为命令行参数提供,但未能找到合适的 join / in 表达式来解决问题:
cat object_count.json | jq -n --rawfile fruits "fruits.txt" '($fruits | split("\n") | map(select(. != "")) | sort) as $frts | inputs'
【问题讨论】:
标签: json dictionary jq