Página 1 de 1

Insertar una línea cada 10 líneas en un archivo de texto

NotaPublicado: 2010-05-06 23:40 @028
por punkscp
Saludos cordiales,

Espero puedan ayudarme con este problemita que me tiene dando vueltas la cabeza:

He estado intentando insertar una línea cada vez que pasen 10 líneas en un archivo de texto.
Lo único que pude hacer es insertar una línea después de cada línea. Ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. open $FH,"<mp31.lst" or die $!;
  4. $flag=0;
  5. while(<$FH>){
  6.     print;
  7.  
  8.     {
  9.         print "/home/mp3";
  10.         print "psi.mp3\n";
  11.         $flag=0;
  12.     }
  13. }
  14. close $FH;
  15.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


¿Cómo puedo hacer que imprima pero solo cada 10 líneas?

De antemano ¡les agradezco su atención!

Re: Insertar una linea cada 10 lineas en un archivo de texto

NotaPublicado: 2010-05-07 03:16 @178
por explorer
Bienvenido a los foros de Perl en Español, punkscp.

Puedes usar la variable especial $., que guarda el número de líneas leídas.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. open my $fichero, q[<], 'fichero_entrada.txt' or die "ERROR: $!\n";
  3.  
  4. while (my $linea = <$fichero>) {
  5.     print $linea;               # Imprimimos la $línea del $fichero
  6.  
  7.     if ($. % 10 == 0) {         # Si el número de línea del fichero ($.), es múltiplo de 10
  8.         print "INSERTO\n";      # Imprimimos un inserto
  9.     }
  10. }
  11.  
  12. close   $fichero;
  13.  
  14. __END__
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Insertar una linea cada 10 lineas en un archivo de texto

NotaPublicado: 2010-05-07 11:23 @516
por punkscp
¡¡Muchas Gracias!!

Todo a la perfección =), esto de Perl es una maravilla.

De antemano, agradezco la respuesta, fue muy rápida.