使用unix脚本提供问题将null / Zero值添加到逗号分隔文件

时间:2015-01-07 12:38:29

标签: linux shell unix sed

我有一个要求,我从源获取具有不同数量的分层数据的文件,我需要将它们设置为一个标准数量的分隔数据。

我尝试了以下命令sed -i "s/$/0,0,0/" file_nm:数据输入新行,如下所示

源文件1:

AA,BB,CC,0,0    
AC,BD,DB,1,0   
EE,ER,DR,0,0

结果文件

AA,BB,CC,0,0                                             
,0,0,0     
AC,BD,DB,1,0     
,0,0,0   
EE,ER,DR,0,0  
,0,0,0     

我想要做的是在每行的末尾添加额外的3个零

AA,BB,CC,0,0,0,0,0  
AC,BD,DB,1,0,0,0,0  
EE,ER,DR,0,0,0,0,0

2 个答案:

答案 0 :(得分:0)

试试这个

sed '1,$ s/$/,0,0,0/' inputfile

这是我试过的

enter image description here

P.S。:如果输入文件列在最后一列之后没有任何空格或制表符。

答案 1 :(得分:0)

这是 awk

的更具动态性的解决方案
awk -F, '{i=NF;while(i++<9){$0=$0",0"}}1' File 

注意:根据您的要求更改9

Sample:

AMD$ cat File
AA,BB,CC,0,0,0
AC,BD,DB,1,0
EE,ER,DR,0,0,0

AMD$ awk -F, '{i=NF;while(i++<9){$0=$0",0"}}1' File
AA,BB,CC,0,0,0,0,0,0
AC,BD,DB,1,0,0,0,0,0
EE,ER,DR,0,0,0,0,0,0

在这里,我们将,设置为awk分隔符;然后,只要字段总数小于9,我们就会在每行末尾添加0。在这种情况下,无论字段数是多少,都会添加0 s在每一行的末尾,使字段总数= 9