如果我有 3 个 csv 文件,并且我想将数据全部合并为一个,但彼此并排,我该怎么做?例如:
初始合并文件:
,,,,,,,,,,,,
文件 1:
20,09/05,5694
20,09/06,3234
20,09/08,2342
文件 2:
20,09/05,2341
20,09/06,2334
20,09/09,342
文件 3:
20,09/05,1231
20,09/08,3452
20,09/10,2345
20,09/11,372
最终合并文件:
09/05,5694,,,09/05,2341,,,09/05,1231
09/06,3234,,,09/06,2334,,,09/08,3452
09/08,2342,,,09/09,342,,,09/10,2345
,,,,,,,,09/11,372
基本上来自每个文件的数据进入合并文件的特定列。我知道 awk 函数可以用于此,但我不知道如何开始
编辑:仅打印每个文件的第 2 列和第 3 列。我用它来打印第二列和第三列:
awk -v f="${i}" -F, 'match ($0,f) { print $2","$3 }' file3.csv > d$i.csv
但是,例如,file1 和 file2 在该行中为空,该行的数据将向左移动。所以我想出了这个来解释这种转变:
awk -v x="${i}" -F, 'match ($0,x) { if ($2='/NULL') { print "," }; else { print $2","$3}; }' alld.csv > d$i.csv