# create header first grep -w SP file1.csv > merged.csv # grep out the header from each file for i in {1..4}; do grep -v SP file${i}.csv >> merged.csv; done #### my @f1 = ; my @f2 = ; ... my @all; push @all, @f1(1..$#f1),@f2(1..$#f2),@f3(1..$#f3),@f4(1..$#f4); push @all, @f1[1..$#f1],@f2[1..$#f2],@f3[1..$#f3],@f4[1..$#f4]; # header print "$f1[0]\n"; # lines print join("\t", @all); print "\n";