如何使用shell脚本中的文本文件在CSV文件中添加新列,其中列名作为数据填充中的日期。
输入文件:input.csv
DESC,20-07,21-07,22-07,23-07,24-07,25-07
A,1,2,3,4,5
B,WD,DSF,GFH,SDF,SDF
C,FG,ZX,CRST,SDF,SEF
文本文件:abc.txt
26-07
ew
we
we
我想要输出文件,如:output.csv
DESC,20-07,21-07,22-07,23-07,24-07,25-07,26-07
A,1,2,3,4,5,ew
B,WD,DSF,GFH,SDF,SDF,we
C,FG,ZX,CRST,SDF,SEF,we
我想要一个每天在CSV文件中添加一列的脚本。
答案 0 :(得分:4)
您可以使用paste
命令执行此操作:
$ paste -d',' input abc
DESC,20-07,21-07,22-07,23-07,24-07,25-07,26-07
A,1,2,3,4,5,ew
B,WD,DSF,GFH,SDF,SDF,we
C,FG,ZX,CRST,SDF,SEF,we
或pr
命令:
$ pr -mts',' input abc
DESC,20-07,21-07,22-07,23-07,24-07,25-07,26-07
A,1,2,3,4,5,ew
B,WD,DSF,GFH,SDF,SDF,we
C,FG,ZX,CRST,SDF,SEF,we
答案 1 :(得分:0)
另一种选择可能是awk:
awk 'NR == FNR {if(x == 0) {x=1};a[x]=$0;x++;next}{for(z=1; z < x; z++){if (z <= NF){print a[z]","$z} else {print a[z]}}}' input.csv abc.txt > output.csv
这考虑了input.csv比abc.txt有更多行的情况。