• Publicidad

Sustitución dentro de un fichero con Perl

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Sustitución dentro de un fichero con Perl

Notapor cblancar » 2008-07-18 02:14 @135

Hola a todos,
A ver si me podéis echar una mano con esto... (me imagino que para los gurús del Perl les será bastante sencillo).

Tengo un fichero el cual contiene x líneas. Y quiero sustituir por cada línea del fichero el literal ";&;" por este otro "; ;".

Imaginemos que mi fichero se llama prueba.txt. Esto es lo que hago:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $comando = "cat prueba.txt | ";

sustituye($comando);

sub sustituye{

     my $file = shift;
     open(FH,$file);
     while(<FH>)
     {
            s/;&;/; ;/;
     }
     close(FH);
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


He probado también a escapar los caracteres de la siguiente forma

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
s/\;\&\;/\;\s\;/;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y tampoco hace nada.

¿Me podéis decir por favor, qué estoy haciendo mal?....

Muchas gracias y un saludo a todos.
cblancar
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2008-07-15 01:41 @112

Publicidad

Notapor explorer » 2008-07-18 03:31 @188

Sí que estás haciendo la sustitución, pero no estás guardando el resultado de la sustitución en el fichero (solo haces proceso de lectura, no de escritura).

P.D. Esta es una respuesta del foro Experto ;-)

Actualización: No te hace falta usar el 'cat' ni el pipe, ya que puedes hacer un open() del fichero 'prueba.txt' de forma directa.
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


Volver a Avanzado

¿Quién está conectado?

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