• Publicidad

Grabar contenido de un fichero en otro fichero

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

Grabar contenido de un fichero en otro fichero

Notapor alesevimor » 2012-01-31 20:02 @876

¡Hola de nuevo! Necesito un script Perl que grabe el contenido de un fichero de texto en otro que se crea con el nombre que le dé por parámetros en línea de comandos. Después de la ejecución, los dos ficheros de texto deben ser idénticos. Si por un casual el archivo que se va a crear ya existe en disco y contiene algo, esta información se pierde y se sobrescribe con la del otro fichero.

Esto es lo que he intentado, pero no me sale

open(LEER, "f1");
while (<LEER>)
{
open(escribir, ">@ARGV");
}

Gracias de antemano.
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Publicidad

Re: Grabar contenido de un fichero en otro fichero

Notapor explorer » 2012-01-31 20:13 @884

Pero fíjate en lo que has escrito: estás abriendo (open()) el archivo destino, por cada línea del archivo origen... con lo que el archivo destino es puesto a cero, por cada línea.

Mejor abres primero los dos archivos, luego recorres el primero con el while(), y dentro de él, imprimes la línea leída en el fichero destino.

Más información en perldoc -q "copy a file"
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: Grabar contenido de un fichero en otro fichero

Notapor alesevimor » 2012-01-31 20:53 @912

Entiendo, pero ¿cómo escribo al fichero destino?

open(F1, "f1");
open(F2, "@ARGV");
while (<F1>)
{
#Aquí se haría la escritura, ¿no?
}

¡Gracias;)!
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Re: Grabar contenido de un fichero en otro fichero

Notapor explorer » 2012-01-31 21:25 @934

No has indicado qué archivo abres en modo lectura y cuál en modo escritura.

Para escribir a un archivo se usa print(). Sería algo así:

print F2 $_;

Pongo F2 porque "parece" que ese es el controlador de tu fichero de salida. Y en $_ está almacenada la línea que acabas de leer desde F1.

Más información en perldoc -f open y perldoc -f print .
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: Grabar contenido de un fichero en otro fichero

Notapor alesevimor » 2012-02-01 08:43 @405

Resuelto. ¡Muchísimas gracias!
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705


Volver a Administración

¿Quién está conectado?

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