[caracas-pm] Problema con script para copiar archivos de un directorioa otro

Jose Parrella joseparrella at cantv.net
Thu Jun 8 08:44:58 PDT 2006


On Thu, 8 Jun 2006 10:07:52 -0400
"Alexis Arnal" <aarnal at gmail.com> wrote:

> #!/usr/bin/perl -w
> 
> $org='/home/aarnal/pruebacopia/file.txt';
> $i=1;
> 
> open (ORIGEN,$org);
> 
> while(<ORIGEN>){
> 	print "Copiando archivo: $_\t Cantidad de archivos copiados:
$i\n";
> 	`cp $_ /home/aarnal/pruebacopia1/`;
> 	$i++;
> 	}
> 
> close (ORIGEN);

Agrega un chomp; debajo del while. Todos tus nombres de archivo tienen
un caracter de nueva línea (\n) al final, y me imagino que cp se toma
eso como un intro. En todo caso, el chomp lo resuelve.

Otra forma de escribir tu programa en Perl puede ser:

#!/usr/bin/perl -n
chomp;
`cp $_ /home/aarnal/pruebacopia1/`;

Y en bash, como dijo Francisco,

for archivo in `cat file.txt`; do cp $archivo
/home/aarnal/pruebacopia1/; done

Usa la que te haga sentir más cómodo, pues al final haces la misma
llamada de sistema a cp. Lo que me queda por averiguar (hola Ernesto) es
si cat puede ser más rápido que el while (<>) de Perl en archivos
grandes.

Jose


More information about the caracas-pm mailing list