File_2.csvtarget1,48,12,7 target2,17,16,2 target3,22,6,1
File_3.csvtarget5,14,12,8,,3, target6,5,7,9,,,15
File_4.csvtarget1,,,,,,13 target2,,,,,,8 target4,,,,11,5,6
And I want to merge them all specific to row and column each value is in(preserving column information also). My present code is working fine but its not able to preserve the column information for any value. Here goes my present scripttarget1,,,,51,8 target2,,,,87,42 target4,22,3,7,,
The merged output(WRONG) generated by above codeuse strict; use warnings; print ("Now merging \n"); my $filenum = 0; my ( %row_val, %data ); foreach my $file ( sort glob("*.csv") ) { $filenum++; open my $fh, "<", $file or die $!; while ( my $line = <$fh> ) { chomp $line; my ( $row_val, @values ) = split /,/, $line; $row_val{$row_val} = 1; $data{$filenum}{$row_val} = \@values; } close $fh; } foreach my $row_val ( sort keys %row_val ) { print $row_val, ",", join( ",", map { $data{$_}{$row_val} ? @{ $da +ta{$_}{$row_val} } : ",," } 1 .. $filenum ), "\n"; }
target1,48,12,7,,,,,,,,,13,,,,51,8 target2,17,16,2,,,,,,,,,8,,,,87,42 target3,22,6,1,,,,,,,,, target4,,,,,,,,,,11,5,6,22,3,7 target5,,,,14,12,8,,3,,,,,, target6,,,,5,7,9,,,15,,,,,,
-----DESIRED/CORRECT OUTPUT-----
target1,48,12,7,51,8,13 target2,17,16,2,87,42,8 target3,22,6,1,,, target4,22,3,7,11,5,6 target5,14,12,8,,3, target6,5,7,9,,,15
In reply to merging csv files into a third file preserving column & row by zing
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |