【发布时间】:2021-02-10 10:51:53
【问题描述】:
我有这个 jq 命令:
cat myfile | jq -c '{
domain: .name,
results: .data | select(.answers != null) | .answers | map(.answer) | del(.[] | nulls) ,
includes: .data | select(.answers != null) | .answers | map(.answer) | del(.[] | nulls) | map(match("rearch:(.*?)?[ \"]"; "ig").captures[0].string) | unique
}'
得到这个结果:
{"domain":"blabla.com","results":["dorem rearch:blble.k iyh"],"includes":["blble.k"]}
{"domain":"bla.com","results":["koa rearch:ble.m","kl rearch:be.c lk"],"includes":["ble.m","be.c"]}
我的问题是:有没有办法DRY我的命令?
我的意思是如何在没有 duplicate 部分的情况下获得 相同的结果:
.数据 |选择(.answers != null) | .答案 |地图(.answer) |德尔(。[] | 空)
如何重用results feild 的结果?
我有一个非常大的文件要处理,所以我不想浪费时间和资源。
【问题讨论】:
-
您可以粘贴输入 JSON 并显示预期的 exact 输出吗?很难提供替代方案,但只是看看你的尝试
标签: json duplicates field jq