Cambiar varios nombres a la Vez?

Antonio Galicia Ceballos jcgalici en agc.com.mx
Lun Jun 28 20:08:57 CLT 2004


On Mon, 28 Jun 2004, Cristian Gutierrez wrote:

> > Te recomiendo que aprendas a programar en shell, te solucionará muchos
> > problemas.
> 
> Y mi recomendacion va por Perl:
> 
>   perl -e 'system sprintf("mv \"%s\" %02d.png",$_,++$n) foreach @ARGV' *.png

 Dos apuntes:

 . Un problema inmediato es que si hay nombres con espacios no van a 
moverse (aun con las comillas). Mejor hacer:

	ls -1 *.png | perl -ne 'system sprintf("mv \"%s\" %02d.png",$_,++$n)'

 . No me agrada ejecutar de inmediato algo que sale de un proceso 
automático si no puedo revertirlo o al menos examinarlo antes de que se 
ejecuta así que un nuevo cambio:

	ls -1 *.png | perl -ne 'printf("mv \"%s\" %02d.png",$_,++$n)'

con lo que ves lo que haras, el resultado lo pasas por bash, directo del 
stream o mediando archivo.

	lo_de_arriva | bash

	lo_de_arriva > archivo.revisar
	bash archivo.revisar

> No solo te solucionara, sino que te creara muchos nuevos e interesantes
> problemas :-D

 Eip, pero no lo mandes a la guerre sin saber en lo que se mete ;)

 Por cierto, el código esta hecho sobre las rodillas (desde la lap) y no 
se ha probado, tener esto en cuenta ya que puede no funcionar. Para probar 
deberias copiar un par de archivos en otro directorio y ver que hace. 
Agrega archivos con espacios, nombres muy largos, etc.

-- 

 Saludos,
 Toño.
---
 http://agc.com.mx/antoniogc/blog


Más información sobre la lista de distribución Linux