Buenas tardes, mi pregunta es la siguiente:
Tengo el archivo 1 con la siguiente estructura
Using text Syntax Highlighting
A7YWC4 F6QV99
F1N0G5 G3N1Z8
E1BN63 F1MNS2
E1BAX5 F1N253
E1BG32 G5E586
E1B7W8 E1BG45
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Y un segundo archivo con una estructura similar
Using text Syntax Highlighting
A7YWC4 F6QV99
F1N0G5 G3N1Z8
E1BN63 F1MNS2
E1BAX5 F1N253
E1BG32 G5E586
E1B7W8 E1BG45
F1MNS0 F1MY10
E1BE75 E1BNL4
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Quiero saber cuántas veces se aparece la línea 1 del archivo 1 en el archivo 2 (contar) para esto ya realicé el siguiente
script.
Using perl Syntax Highlighting
my $arch=$ARGV[0];
open (ARCH,$arch);
my @array=<ARCH>;
close ARCH;
my $arch2=$ARGV[1];
open (ARCH,$arch2);
my @array2=<ARCH>;
close ARCH;
foreach $i (@array){
chomp ($i);
$cont=0;
foreach $t (@array2){
chomp ($t);
if ($i eq $t){
$cont++;
}
}
print "$i\t$cont\n";
}
Coloreado en 0.007 segundos, usando
GeSHi 1.0.8.4
Sin embargo, debido a que el archivo 1 tiene 2.5 millones de líneas y el archivo 2 tiene 29 millones el tiempo que tarda en ejecutarse el programa es mucho.
La pregunta es si existe alguna forma de modificar el código para reducir el tiempo, o alguna otra forma de contar.
Por su atención, gracias.
Saludos