Página 1 de 1

Grabar contenido de un fichero en otro fichero

NotaPublicado: 2012-01-31 20:02 @876
por alesevimor
¡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.

Re: Grabar contenido de un fichero en otro fichero

NotaPublicado: 2012-01-31 20:13 @884
por explorer
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"

Re: Grabar contenido de un fichero en otro fichero

NotaPublicado: 2012-01-31 20:53 @912
por alesevimor
Entiendo, pero ¿cómo escribo al fichero destino?

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

¡Gracias;)!

Re: Grabar contenido de un fichero en otro fichero

NotaPublicado: 2012-01-31 21:25 @934
por explorer
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 .

Re: Grabar contenido de un fichero en otro fichero

NotaPublicado: 2012-02-01 08:43 @405
por alesevimor
Resuelto. ¡Muchísimas gracias!