如何使用jq命令将二维JSON数组按子数组分行显示?
使用jq格式化二维JSON数组为每行一个子数组
针对你提供的JSON结构,有两个简洁的jq命令可以实现需求:
方法1:用join(" ")直接拼接元素
这个方式最贴合你的示例输出,直接把每个子数组的元素用空格连起来输出:
jq -r '.array[] | join(" ")' input.json
命令逻辑拆解:
jq -r:指定输出原始字符串,避免JSON默认的引号包裹.array[]:遍历array下的所有子数组,逐个处理join(" "):将当前子数组的所有元素用空格拼接成单行字符串
方法2:用@tsv配合转换(兼容更多场景)
如果需要处理带特殊字符的元素,@tsv会自动处理转义,之后再转成空格:
jq -r '.array[] | @tsv' input.json | tr '\t' ' '
命令逻辑拆解:
@tsv:将数组转为制表符分隔的标准TSV格式tr '\t' ' ':把制表符替换为空格,匹配示例的输出样式
实际测试效果
输入的JSON数据:
{ "array": [ [1, 2, 3], [4, 5], [6, 7, 8, 9] ] }
执行任一命令后,输出结果:
1 2 3 4 5 6 7 8 9
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

