Eu preciso combinar colunas diferentes de dois arquivos tabulares diferentes e imprimir as duplicatas e linhas exclusivas, quer dizer, se no arquivo 1 a coluna 3 for igual à coluna 2 do arquivo 2, imprima linha de dois arquivos, mas se não for igual , linha de impressão que existe em qualquer arquivo e completa com um caractere "-" colunas vazias do arquivo quando não existe o teste de coluna
ARQUIVO 1
col[0] col[1] col[2] col[3] col[4]
4 2 0 gamete generation Diferencial
6 8 4 metabolism
2 2 0 fertilization
FILE2
col2[0] col2[1] col2[2] col2[3]
0 0 1 gamete generation
4 2 0 biosinthesis
11 5 1 fertilization
OUTPUT
col[0] col[1] col[2] col[3] col[4]
4 2 0 0 0 1 gamete generation Diferencial
6 8 4 - - - metabolism
-- -4 2 0 biosinthesis
2 2 0 11 5 fertilization
#!/usr/bin/perl -w
open(FILE1,$ARGV[0]);
open(FILE2,$ARGV[1]);
my @tabla=<FILE1>;
my @tabla2=<FILE2>;
chomp @tabla;
chomp @tabla2;
close FILE1;
close FILE2;
foreach $x(@tabla){
my @col=split(/\t/, $x);
foreach $y(@tabla2){
my @col2=split(/\t/, $y);
if ($col[3] eq $col2[3]){
print "$col[3] \t$col[0]\t$col[1]\t$col[2]\t $col2[0]\t$col2[1]\t$col2[2] \n";
}
}
}
Tags perl