Me gustaría cambiar el nombre de una gran cantidad de archivos con nombres in1.jpg, in2.jpg, in3.jpg, etc. a out0001.jpg, out0002.jpg, out0003.jpg, etc. Agradezco que alguien sugiera una solución utilizando el script Perl. rename
(o prename
) que viene con la distribución de Perl.
Respuesta1
Sólo por diversión y gratis...
Usaría enlaces para conservar los nombres originales, pero puede cambiar el comando de enlace ( ln
) a un comando de movimiento ( mv
) si lo desea (agregado como comentario):
#!/usr/bin/perl
# Creates link files with ascending sequence numbers ($USE_SEQ=1) or original numbers
# ($USE_SEQ=0):
$USE_SEQ = 1;
unless(opendir(DIRECTORY,".")) { die "Unable to open current directory.\n"; }
@files = readdir(DIRECTORY);
closedir(DIRECTORY);
$seqnum = 1;
foreach $file (@files) {
if ($file =~ /\.jpg$/i) {
($number) = ($file =~ /(\d+).jpg/i);
$number = $seqnum++ if $USE_SEQ;
$padded_number = sprintf "%05d", $number;
$padded_name = "out" . $padded_number . ".jpg";
`ln -s "$file" $padded_name`;
# `mv "$file" $padded_name`; # untested
}
}