• Publicidad

Multiplicar todos las líneas de un archivo por 3

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

Multiplicar todos las líneas de un archivo por 3

Notapor colorado » 2011-02-08 17:25 @767

Tengo una lista con el siguiente contenido:

lista.txt
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Iker Casillas Fernández (Real Madrid CF)
David De Gea Quintana (Club Atlético de Madrid, SAD)
Diego López Rodríguez (Villareal CF SAD)
José Manuel Reina Páez (Liverpool)
Víctor Valdés Arribas (FC Barcelona)
Raúl Albiol Tortajada (Real Madrid CF)
Alvaro Arbeloa Coca (Real Madrid CF)
César Azpilicueta Tanco (Club Atlético Osasuna)
Joan Capdevila Méndez (Villarreal CF, SAD)
Carlos Marchena López (Valencia CF, SAD)
Gerard Pique Bernabéu (FC Barcelona)
Carles Puyol Saforcada (FC Barcelona)
Sergio Ramos García (Real Madrid)
Xabier Alonso Olano (Real Madrid CF)
Sergio Busquets Burgos (FC Barcelona)
Francesc “Cesc” Fabregas Soler (Arsenal FC)
Andrés Iniesta Lujan (FC Barcelona)
Javier Martínez Aguinaga (Athletic Club)
Marcos Antonio Senna Da Silva (Villarreal CF, SAD)
David Jiménez Silva (Valencia CF, SAD)
Xavier Hernández Creus (FC Barcelona)
Santiago Cazorla González (Villarreal CF, SAD)
Jesús Navas González (Sevilla FC SAD)
Juan Manuel Mata García (Valencia CF, SAD)
Pedro Rodríguez Ledesma (FC Barcelona)
Daniel González Güiza (Fenerbache SK)
Fernando Llorente Torres (Athletic Club)
Alvaro Negredo Sánchez (Sevilla FC SAD)
Fernando Torres Sanz (Liverpool FC)
David Villa Sánchez (Valencia CF, SAD)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que necesito es multiplicar por 3 cada línea del archivo y que quede de esta forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Iker Casillas Fernández (Real Madrid CF)
Iker Casillas Fernández (Real Madrid CF)
Iker Casillas Fernández (Real Madrid CF)
David De Gea Quintana (Club Atlético de Madrid, SAD)
David De Gea Quintana (Club Atlético de Madrid, SAD)
David De Gea Quintana (Club Atlético de Madrid, SAD)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Así con todos los demás jugadores.

La cosa sería más o menos así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(FILE, "<   lista.txt");
  2. my @lista = <LISTA>;
  3. foreach my $linea (@lista)
  4. {
  5. if($linea = # multiplicar cada linea x 3)
  6. {
  7. print $linea;
  8. }
  9. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El problema es que no sé qué valores dar a la variable $linea para conseguirlo.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Publicidad

Re: Multiplicar todos las líneas de un archivo por 3

Notapor explorer » 2011-02-08 17:37 @775

No tienes que darle a $linea ningún valor.

Solo tienes que escribir lo que quieres que haga:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(FILE,   "<lista.txt");
  2. open(SALIDA, ">salida.txt");
  3.  
  4. while (my $linea = <FILE>) {
  5.     print SALIDA $linea;
  6.     print SALIDA $linea;
  7.     print SALIDA $linea;
  8. }
  9.  
  10. close FILE;
  11. close SALIDA;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Desde la propia línea de comandos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -ne 'print; print; print' lista.txt
Coloreado en 0.002 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: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Multiplicar todos las líneas de un archivo por 3

Notapor Leo_Gutierrez » 2011-02-09 01:02 @085

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(my $file, q[<], "file.txt") or die("Error abriendo archivo. $!");
  2. open(my $salida, q[>], "salida.txt") or die;
  3.  
  4. print $salida $_ x 3 while(<$file>);
  5.  
  6. close($file);
  7. close($salida);
  8.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. perl -ne 'print $_ x 3' file.txt
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Leo_Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 91
Registrado: 2008-08-20 23:38 @026

Re: Multiplicar todos las líneas de un archivo por 3

Notapor colorado » 2011-02-09 10:21 @473

Gracias, explorer y a Leo_Gutierrez.
Es justo lo que andaba buscando.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658


Volver a Básico

¿Quién está conectado?

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