[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