¿Cómo cambiar el nombre de las imágenes por lotes, en orden numérico inverso?

5

Mi cámara nombra sus imágenes IMG_0001.jpg, IMG_0002.jpg, IMG_0003.jpg, etc.

Tengo alrededor de mil imágenes y me gustaría cambiarles el nombre sin tener que hacerlo manualmente si es posible.

¿Existe una buena manera de automatizar el proceso de cambio de nombre en el orden inverso? IMG_0003.jpg, IMG_0002.jpg, IMG_0001.jpg?

    
pregunta Jason 18.10.2012 - 13:33

5 respuestas

10

Puedes usar un flujo de trabajo de Automator.

Algo como esto:

El paso

Ordenar elementos del buscador ordenará los nombres de las imágenes en forma descendente (IMG_0003.jpg, IMG_002.jpg, IMG_001.jpg).

El paso

Hacer secuencial cambiará su nombre secuencialmente (IMG_0001.jpg, IMG_0002.jpg, ...).

El paso

Copiar elementos del buscador es opcional, solo para asegurarse de no desordenar los archivos originales.

    
respondido por el Riccardo Marotti 18.10.2012 - 15:45
3

Aquí hay otro script de shell. Puede guardarlo como un archivo de texto normal y luego ejecutar bash /path/to/script.sh desde la Terminal. Elimine 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
    
respondido por el user495470 19.10.2012 - 11:23
2

Name Mangler ($ 10 y tiene una prueba gratuita) o Name Changer (free / donationware) también es muy bueno para este tipo de cosas si buscas una aplicación agradable y simple.

    
respondido por el binarybob 18.10.2012 - 21:05
2

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 carpeta new .

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 una lista de las imágenes en orden alfabético en 1 y en orden inverso en 2 . Luego se lee una línea de cada archivo y se combina en un comando mv , que se ejecuta cuando se ejecuta 3 . Las imágenes se renombran en la carpeta new para evitar colisiones.

    
respondido por el lhf 18.10.2012 - 13:41
1

Puede usar el script perl rename.pl que se avecina en la web (por ejemplo, desde aquí ), y póngalo en la carpeta con sus archivos de imagen.

Su uso es simple y está documentado y es bastante poderoso. Para usarlo en su caso, reemplace 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:

  1. El primer cambio de nombre (antes de & &) cambiará el nombre de todos los archivos a MAXIMUM_NUMBER menos el número que ya se encuentra en el nombre del archivo. También prefijará el nombre de archivo con A_ para evitar sobrescribir archivos ya existentes.
  2. El segundo cambio de nombre simplemente elimina el 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.

    
respondido por el Jozef Legény 19.10.2012 - 11:58

Lea otras preguntas en las etiquetas