¿Cómo puedo cambiar el nombre de una lista ordenada de archivos con una lista ordenada de nombres de archivos?

2

Tengo una serie de archivos. Necesito aplicar una serie de nombres de archivos.

Entonces,

  • 001.jpg - > apple.jpg
  • 002.jpg - > banana.jpg
  • 003.jpg - > orange.jpg
  • etc.

Tendré que repetir esto para cada una de las 16 carpetas con 292 archivos por carpeta. Los archivos siempre estarán en el orden numerado correcto, pero no siempre los mismos nombres (la primera serie será 001.jpg-292.jpg, luego 293.jpg-584.jpg, etc.). Los nombres proporcionados serán los mismos para los archivos en las 16 carpetas.

Veo que esto es posible (y bastante fácil) con aplicaciones como A Better Finder Rename , pero no estoy interesado en gastar los $ 20 en todos esos características solo para hacer una cosa que no espero volver a tener que hacer: D

Entonces, ¿hay algún tipo de opción gratuita, como Automator, Applescript o Shell script?

He encontrado varios scripts de shell que repiten la misma acción para todos los archivos, pero no sé lo suficiente como para editarlos y proporcionar un nuevo nombre para cada operación de cambio de nombre. :(

¡Incluso si tengo que hacer un script de más de 292 líneas, codificando la lista de nombres, sería más fácil que cambiar el nombre manualmente a todos en el buscador uno por uno!

    
pregunta iynque 17.12.2013 - 16:24

1 respuesta

1

Por ejemplo, guarda este archivo como filenames.txt :

apple
banana
orange

A continuación, ejecute:

a=($(<filenames.txt));for d in *;do i=0;for f in $d/*;do echo mv $f $d/${a[i++]}.jpg;done;done

Elimine echo si la salida se ve bien.

Si los nombres de los archivos contienen espacios, agregue IFS=$'\n'; al inicio y agregue comillas dobles alrededor de las variables.

    
respondido por el user495470 19.12.2013 - 17:47

Lea otras preguntas en las etiquetas