我有一个要求,我从源获取具有不同数量的分层数据的文件,我需要将它们设置为一个标准数量的分隔数据。
我尝试了以下命令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
答案 0 :(得分:0)
试试这个
sed '1,$ s/$/,0,0,0/' inputfile
这是我试过的
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
。