Aqui está uma maneira de fazer isso em perl
:
#!/usr/bin/perl
use strict;
my @lines=();
# read and sum the columns of all input files.
foreach my $file (@ARGV) {
my $lc=0; # line counter
open(FH,'<',$file) or die "couldn't open $_ for write: $!\n";
while (<FH>) {
# split columns by whitespace. change to suit your input.
my @fields=split;
my $fc=0; # field counter
while ($fc < @fields) {
$lines[$lc]->[$fc] += $fields[$fc++];
};
$lc++;
};
close(FH);
};
# now output the summed lines
foreach my $lc (0..@lines-1) {
# output columns separated by a TAB (\t). Change as required.
print join("\t", @{ $lines[$lc] } ),"\n";
}
Soma colunas para cada linha para todos os arquivos de entrada.
Valores não numéricos em campos são tratados como 0.
Funciona com arquivos com números de linhas iguais ou diferentes.
Ele ainda funciona se os arquivos tiverem números variados de campos por linha (embora a saída possa não ser o que você espera ou até mesmo utilizável - não é recomendada).