Hola.
Estoy tratando de hacer comparaciones entre dos archivos de texto, ambos separados por "\t".
El archivo "pba1.txt" tiene la siguiente estructura:
Using text Syntax Highlighting
a b
a c
a d
b c
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
El archivo "pba2.txt" tiene la siguiente estructura:
Using text Syntax Highlighting
b b
c d
a a
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Lo que deseo hacer es comparar la segunda columna de cada archivo, y si hay coincidencia que me imprima el par más la "OK" y si no hay coincidencia que me imprima el par más "otro".
El resultado esperado sería algo como esto:
Using text Syntax Highlighting
a b OK
a d OK
a c otro
b c otro
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
He escrito el siguiente código y el resultado es distinto al esperado. Espero que alguien me pueda comentar qué es lo que estoy haciendo mal.
Using perl Syntax Highlighting
#! /usr/bin/perl
my $file = $ARGV[0];
my $sfile = $ARGV[1];
open FILE, $file;
open SFILE, $sfile;
my @array = <FILE>;
my @sarray = <SFILE>;
chomp @array;
chomp @sarray;
close FILE;
close SFILE;
for $i (@array) {
my @cols = split(/\t/, $i);
for $j (@sarray){
my @scols= split(/\t/, $j);
if($cols[1] eq $scols[1]){
print "$cols[0]\t$cols[1]\tOK\n";
}
else{
print "$cols[0]\t$cols[1]\totro\n";
}
}
}
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
El resultado que obtengo con este código es este:
Using text Syntax Highlighting
a b OK
a b otro
a b otro
a c otro
a c otro
a c otro
a d otro
a d OK
a d otro
b c otro
b c otro
b c otro
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4