• Publicidad

Eliminar línea cada vez que encuentre un signo '?'

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

Eliminar línea cada vez que encuentre un signo '?'

Notapor Mirvana » 2011-12-30 17:44 @781

Hola.

Tengo una duda: ¿cómo puedo hacer para que cada vez que encuentre una línea que contenga el signo '?', la elimine y guarde las demás líneas en un nuevo archivo?

El código que tengo lo hace dándole el número de registro en donde está el signo.

Pero quiero que lo elimine sin darle yo el registro.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. use warnings;
  4. use POSIX;
  5.  
  6. #$archivo=$ARGV[0];
  7.  
  8. $archivo="ARCHIVOS.txt";
  9. open my $Fichero, q[<], $archivo;            # abrimos el archivo
  10.  
  11. open(SALIDA,"+> nuevoarchivo.txt") || die "ERROR: No se puede crear el archivo\n";
  12.  
  13. while(<$Fichero>)
  14. {
  15.  
  16.    if($. == 619){
  17.  
  18.       next;
  19.  
  20.   }
  21.       print SALIDA;
  22. }
  23.  
  24.  close $Fichero;
  25. close(SALIDA);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
SNP1  RSID1 113641 C T 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0
SNP2  RSID2 323535 T C 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0
SNP3  RSID3 369242 T C 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0
SNP4  RSID4 369418 C A 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0
SNP5  RSID5 482656 ? ? 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
SNP6  RSID6 487590 A G 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1
SNP7  RSID7 620748 G A 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0
SNP8  RSID8 620968 G A 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0
SNP9  RSID9 1170767 C T 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Mirvana
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2010-09-25 14:30 @646

Publicidad

Re: Eliminar línea cada vez que encuentre un signo '?'

Notapor explorer » 2011-12-30 17:55 @788

Cambia esta línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.    if (/\?/) {
Coloreado en 0.001 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: Eliminar línea cada vez que encuentre un signo '?'

Notapor Mirvana » 2011-12-30 18:12 @800

Muchas gracias. Listo.
Mirvana
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2010-09-25 14:30 @646


Volver a Básico

¿Quién está conectado?

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

cron