Mi cámara nombra sus imágenes IMG_0001.jpg, IMG_0002.jpg, IMG_0003.jpg, etc.
Tengo unas mil imágenes y me gustaría renombrarlas sin tener que hacerlo manualmente si es posible.
¿Existe una buena forma de automatizar el proceso de renombrarlos en orden inverso, por ejemplo, IMG_0003.jpg, IMG_0002.jpg, IMG_0001.jpg?
Puede utilizar un flujo de trabajo de Automator.
Algo como esto:
El paso Ordenar elementos del buscador ordenará los nombres de las imágenes de forma descendente (IMG_0003.jpg, IMG_002.jpg, IMG_001.jpg).
Hacer paso secuencial los renombrará secuencialmente (IMG_0001.jpg, IMG_0002.jpg, ...).
El paso Copiar elementos del buscador es opcional, solo para asegurarse de no alterar los archivos originales.
Aquí hay otro script de shell. Puede guardarlo como un archivo de texto normal y luego ejecutarlo bash /path/to/script.sh
desde la Terminal. Elimine el echo
para cambiar el nombre de los archivos.
cd ~/Pictures/
IFS=$'\n' # the input field separators include space by default
i=1
for f in $(ls -r IMG*.jpg); do
echo mv "$f" "IMG_$(printf %04d $i)".jpg
(( i++ ))
done
Prueba esto en la Terminal:
mkdir new
ls IMG* > 1
sort -r < 1 > 2
paste 1 2 | awk '{ print "mv " $1 " new/" $2} ' > 3
. 3
Los archivos renombrados estarán en la new
carpeta.
Aquí hay una breve explicación de cómo funciona esto: crea un script llamado 3
que hace el cambio de nombre. Para eso crea un listado de las imágenes en orden alfabético 1
y en orden inverso en 2
. Luego, se lee una línea de cada archivo y se combina en un mv
comando, que se ejecuta cuando ejecuta 3
. Las imágenes se renombran en la new
carpeta para evitar colisiones.
chmod +x 3
primero debe ejecutar.Name Mangler ($ 10 y tiene una versión de prueba gratuita) o Name Changer (gratis / donationware) también es muy bueno para este tipo de cosas si buscas una aplicación agradable y simple.
Puede usar el script perl rename.pl que se encuentra en la web (por ejemplo, desde aquí ) y ponerlo en la carpeta con sus archivos de imagen.
Su uso es simple y documentado y es bastante poderoso. Para usarlo en su caso, reemplácelo MAXIMUM_NUMBER
por el número en la última foto, luego ejecute:
perl rename.pl 's/IMG_0+(\d+)/"A_IMG_".sprintf("%04d",(MAXIMUM_NUMBER- $1))/xe' *.jpg && perl rename.pl 's/A_//' *.jpg
Para explicar:
A_
para evitar sobrescribir archivos ya existentes.A_
de los nombres de archivo.Tenga en cuenta que el script rename.pl puede hacer mucho más que eso si alguna vez necesita un cambio de nombre más complejo.
bmike
jason
bmike