使用jq映射不同长度extension字段数组时如何实现CSV列对齐
jq 转换变长 extension 数组为固定列数 CSV 的实现方法
最终可用命令
jq -s --raw-output ' (max_by(.extension | length) | .extension | length * 2) as $max_cols | .[] | [.extension[] | .url, .system] | . + [range($max_cols - length) | ""] | @csv ' 你的输入文件路径
实现逻辑说明
- 新增
-s参数:将所有输入的 JSON 对象合并为一个数组,支持全局统计最长的extension数组长度 - 计算总列数:每个
extension元素对应 2 列(url、system),因此全局总列数为最长extension的长度乘以 2 - 补空列:每一行生成的字段数组长度不足总列数时,末尾自动追加空字符串补至指定长度,
@csv会自动将空字符串转换为空列 - 最终输出完全符合预期:
"url1","system1","url2","system2" "url3","system3",,
内容的提问来源于stack exchange,提问作者Jordi
相关产品推荐
相关产品推荐

