我的第一个和第二个CSV文件包含以下数据。现在我想将第二个文件的数据插入到第一个文件中,以便我将数据显示在final.csv中。
First.csv
e_id,e_sal,e_loc
001,20000,mumbai
002,40000,newyork
Second.csv
e_name,e_mngr
raj verma,vineet kothari
sundar prasad,danney morena
Final.csv
e_id,e_name,e_sal,e_mngr,e_loc
001,raj verma,20000,vineet kothari,mumbai
002,sundar prasad,40000,danney morena,newyork
我正在尝试使用这段代码。但它只附加。
while (!eof($fh1) and !eof($fh2)) {
my $line1 = <$fh1>;
my $line2 = <$fh2>;
my @l1 = split /\s+/, $line1;
my @l2 = split /\s+/, $line2;
push (@l1, @l2);
}
答案 0 :(得分:2)
这可能不是最优雅的解决方案,但它可以完成工作,假设格式完全符合指定:
use strict;
use warnings;
open FH, "<First.csv";
open FH2, "<Second.csv";
open OUT, ">Final.csv";
while (my $l = <FH>) {
my @s1 = split(/,/, $l);
my @s2 = split(/,/, <FH2>);
for (my $i = 0; $i < scalar(@s1); $i++) {
print OUT $s1[$i];
for (my $j = $i; $j < scalar(@s2); $j++) {
chomp $s2[$j];
print OUT ",$s2[$j],";
last;
}
}
}
close OUT;
close FH;
close FH2;