• Publicidad

Función grep -o 'patrón' en script [SOLUCIONADO]

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Función grep -o 'patrón' en script [SOLUCIONADO]

Notapor Vozka » 2013-10-16 03:13 @175

Muy buenas, compañeros...

He estado intentando substraer un string de uno bastante mayor mediante expresiones regulares. Únicamente he conseguido contar cuántas veces aparece éste, pero no consigo hacer algo así como pushearlo dentro de un array...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if (($tmp[4]=~m/\+[0-9]*/)||($tmp[4]=~m/\-[0-9]*/)){   
  2.         $countinsertion =()= $tmp[4] =~ m/\+[0-9]*/g;
  3.         $countdeletion =()= $tmp[4] =~ m/\-[0-9]*/g;   
  4. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Sería genial si pudiese implementar la función del
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. grep -o '+[1-9]*[ACTGactg]*'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
de UNIX dentro de mi script, aunque tengo entendido que "programáticamente" no esta muy bien visto.

La idea es recolectar patrones del tipo: "+" o "-" seguido de "cualquier número" seguido de "cualquier combinación de ACTGactg".

¡Gracias de antemano...!
Última edición por Vozka el 2013-10-16 09:18 @429, editado 1 vez en total
Vozka
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2013-09-04 06:02 @293

Publicidad

Re: Función grep -o 'patrón' en script

Notapor explorer » 2013-10-16 05:12 @258

A ver si esto te vale:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. use autodie;
  4.  
  5. my @countinsertion;
  6. my @countdeletion;
  7.  
  8. open my $FICHERO, '<', 'kk.txt';
  9.  
  10. while (my $linea = <$FICHERO>) {
  11.     chomp $linea;
  12.    
  13.     push @countinsertion, $linea =~ /([+]\d+[ACTG]+)/gi;
  14.     push @countdeletion,  $linea =~ /([-]\d+[ACTG]+)/gi;
  15.    
  16. }
  17.  
  18. close $FICHERO;
  19.  
  20. use Data::Dumper;
  21. print Dumper \@countinsertion;
  22. print Dumper \@countdeletion;
  23.  
  24.  
  25. __DATA__
  26.  
  27.  
  28.  +32423ACTGtgc     -43342actggggtgtgt
  29.  
  30. +43aaaacactgatcat -9789atcgatcgatcga
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Resultado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = [
          '+32423ACTGtgc',
          '+43aaaacactgatcat'
        ];
$VAR1 = [
          '-43342actggggtgtgt',
          '-9789atcgatcgatcga'
        ];
Coloreado en 0.000 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: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Función grep -o 'patrón' en script

Notapor Vozka » 2013-10-16 05:37 @275

¡Muchísimas gracias, explorer! Aún no domino demasiado los módulos, quizás por eso nunca pienso en usarlos... pero este hace bien el trabajo. Informándome un poco he leído que lo que me interesa más es la opción "Terse" de Data Dumper. Ahora estoy... ¡"trabajando en ello"!

¡Gracias!

EDITADO: no sé si a partir de este código podría, en vez de imprimir el vuelco de datos en pantalla, llenar un array con ellos y así poder acabar con el formato que le da el Dumper.
Vozka
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2013-09-04 06:02 @293

Re: Función grep -o 'patrón' en script

Notapor explorer » 2013-10-16 09:02 @418

Es que eso es lo que hace mi ejemplo: lee la información de un archivo abierto, y guarda en dos array lo que ha encontrado.

Lo que luego hagas con el contenido de los array, pues ya es cosa tuya decidir qué. En mi caso, decidí sacarlo a pantalla con un Dumper.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Función grep -o 'patrón' en script

Notapor Vozka » 2013-10-16 09:18 @429

:oops:

1000 gracias (AGAIN). ¡Me andaré con mas ojo! :)
Vozka
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2013-09-04 06:02 @293


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado