4

如何使用 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 文件中添加一列。

4

2 回答 2

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
于 2013-07-25T18:08:16.657 回答
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 的列数的情况。

于 2013-07-25T18:57:05.777 回答