• Publicidad

Comparar líneas entre archivos

Perl aplicado a la bioinformática

Re: Comparar líneas entre archivos

Notapor explorer » 2011-11-04 14:45 @656

Bueno, pues queda sencillísimo...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use common::sense;          # Hay que tener sentido común
  3. use open qw(:utf8 :std);    # Terminal en modo utf8
  4. use autodie;                # Es mejor morir que regresar con deshonor --proverbio Klingon.
  5.  
  6. use File::Slurp;
  7.  
  8. ## Leer ficheros
  9. my @primer_archivo  = read_file('archivo1.txt');
  10. my @segundo_archivo = read_file('archivo2.txt');
  11.  
  12. ## Apertura del fichero de coincidencias
  13. open my $fh, '>', 'fichero_coincidencias.txt';
  14.  
  15. ## Comparación
  16. for my $linea1 (@primer_archivo) {
  17.     my($campo1) = split " ", $linea1, 2;
  18.                                                # Buscamos las líneas de @segundo_archivo que contengan $campo1
  19.     my @coincidentes = grep { /$campo1/ } @segundo_archivo;  
  20.  
  21.     for my $linea2 (@coincidentes) {           # Para todas ellas
  22.         print $fh $linea1;                     # Las imprimimos
  23.         print $fh $linea2;
  24.     }
  25. }
  26.  
  27. ## Cierre del fichero de coincidencias
  28. close $fh;
  29.  
  30. __END__
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Comparar líneas entre archivos

Notapor pvaldes » 2011-11-09 13:32 @605

No tiene nada que ver con la pregunta pero llevo un rato riéndome.

"sentido común y sacrificio sin dejar de chupar" :lol: :lol: :lol:

Ya puestos, sugiero otro:

or die "entre horribles sufrimientos $!";
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Comparar líneas entre archivos

Notapor mguajardo88 » 2011-11-10 07:44 @364

:D Gracias, explorer ¡funciona genial!

Otra pregunta: si mis archivos pesan aproximadamente 1 Gb cada uno tarda un poco este script, ¿cierto? ¿Hay alguna manera de que sea más eficiente?

Saludos
mguajardo88
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2011-01-11 10:45 @489

Re: Comparar líneas entre archivos

Notapor pvaldes » 2011-11-12 07:39 @360

¿has creado un índice para la tabla?
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Anterior

Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados