我有下面的输入文件
["alice", ["foo", "bar", "baz"]] ["bob", ["qux", "quux"]] ⋮
我想把它转换成一个制表符分隔的文件,看起来像下面这样(注意缺少引号)
alice foo alice bar alice baz bob qux bob quux ⋮
所有的数组元素都保证是字符串(没有空值)。你能帮我写一个jq脚本来实现这个吗?
vuktfyat1#
将last项(或.[1]项)替换为它自己的每一项(.[]),然后使用@tsv将所有项转换为制表符分隔的值:
last
.[1]
.[]
@tsv
jq -r 'last = last[] | @tsv' input.json
alice foo alice bar alice baz bob qux bob quux
Demo
blmhpbnm2#
这里有另一种方法,将第一个元素放入数组中,然后使用内置的combinations。
combinations
jq --raw-output '.[0]=[.[0]] | combinations | @tsv' input.json
在jqplay.org上试试。
2条答案
按热度按时间vuktfyat1#
将
last
项(或.[1]
项)替换为它自己的每一项(.[]
),然后使用@tsv
将所有项转换为制表符分隔的值:Demo
blmhpbnm2#
这里有另一种方法,将第一个元素放入数组中,然后使用内置的
combinations
。在jqplay.org上试试。