首页 > 解决方案 > 添加尾随逗号以确保 .csv 行具有相同的列数

问题描述

我有一个逗号分隔的文件,其中行的列数是奇数。

我想添加尾随逗号(带有空值),以便每列具有最大列数。

我目前有:

i1, 12, 15
i2, 00, 01
i3
i4, 18, 21, 36

这只是一个示例,实际文件的最大列数有所不同。

对于上面的例子,我想要的输出是:

i1, 12, 15,  
i2, 00, 01,  
i3,   ,   ,  
i4, 18, 21, 36

先感谢您!

标签: bashmacoscsvunixawk

解决方案


您可以使用 awk 来完成这项工作:

$ awk 'BEGIN{FS=OFS=", "}NF<=3{for(i=NF+1;i<=4;i++)$i="  "}7' file
i1, 12, 15,
i2, 00, 01,
i3,   ,   ,
i4, 18, 21, 36

注意在第 1 行和第 2 行中,如果确实有两个尾随空格,您可以添加一个sub(/ *$/,"")


推荐阅读