Come posso rinominare un elenco ordinato di file con un elenco ordinato di nomi di file?

2

Ho una serie di file. Devo applicare una serie di nomi di file.

  • 001.jpg - > Apple.jpg
  • 002.jpg - > banana.jpg
  • 003.jpg - > orange.jpg
  • ecc.

Dovrò ripetere questo per ognuna delle 16 cartelle con 292 file per cartella. I file saranno sempre nell'ordine numerato corretto, ma non sempre gli stessi nomi (la prima serie sarà 001.jpg-292.jpg, poi 293.jpg-584.jpg, ecc.). I nomi forniti saranno gli stessi per i file in tutte le 16 cartelle.

Vedo che questo è possibile (e abbastanza facile!) con app come A Better Finder Rename , ma non mi piace spendere $ 20 per tutti quelli caratteristiche solo per fare una cosa che non mi aspetto che dovrò mai fare di nuovo: D

Quindi, c'è qualche tipo di opzione gratuita, come Automator, un Applescript o uno script di shell?

Ho trovato diversi script di shell che ripetono la stessa azione per tutti i file, ma non so abbastanza per modificarli e fornire un nuovo nome per ogni operazione di rinomina. : (

Anche se dovessi creare uno script lungo più di 292 righe, codificandolo con hard-coding, sarebbe più facile che rinominarli tutti in finder uno per uno!

    
posta iynque 17.12.2013 - 16:24
fonte

1 risposta

1

Ad esempio, salva questo file come filenames.txt :

apple
banana
orange

Quindi esegui:

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

Rimuovi echo se l'output sembra corretto.

Se i nomi dei file contengono spazi, aggiungi IFS=$'\n'; all'inizio e aggiungi virgolette doppie attorno alle variabili.

    
risposta data 19.12.2013 - 17:47
fonte

Leggi altre domande sui tag