por explorer » 2010-11-04 19:11 @841
Pero es que no sabíamos que no sabías hacer un bucle por todos los ficheros .XML.
Además, vemos ahora que los nombres se pueden recortar en sus primeros 14 caracteres, así que no hace falta expresiones regulares... con substr() nos vale para recortar los nombres.
Y además, es una tarea tan sencilla que queremos ejecutarla desde la línea de comandos, como si fuera un guión bash.
Con el siguiente programa, se puede conseguir:
perl -e "for (<*.XML>) { rename $_, substr $_, 13 }"
Observa que las comillas son dobles, porque dices que estás en Windows. Si estuvieras en Linux/Unix, debes usar entrecomillado simple.
Como ya no uso Windows, no sé si el <*.XML> funcionará igual que en mi Linux. Si no te funciona, prueba con esta variante:
perl -e "for (@ARGV) { rename $_, substr $_, 13 }" *.XML
¡Ojo!, estos programas renombran directamente. Si quieres hacer lo mismo que el guión bash, sería
perl -le "for (<*.XML>) { print substr $_, 13 }" > XML.txt
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES