Sto cercando di rinominare in batch un gruppo di file nella mia shell e, anche se su Internet c'è molto materiale a riguardo, non riesco a trovare una soluzione per il mio caso specifico.
Ho un sacco di file che hanno (che sembra essere) un "timestamp-id":
abc_128390.png
abc_138493.png
abc_159084.png
...
che vorrei scambiare con un contatore:
abc_001.png
abc_002.png
abc_003.png
...
Il mio (molto) ingenuo approccio sarebbe qualcosa del tipo:
mv abc_*.png abc_{001..123}.png
Inoltre, non riuscivo a trovare un modo per farlo funzionare con un for
-ciclo.
FWIW, purtroppo rename
non è disponibile su questo particolare sistema.
Qualsiasi consiglio sarebbe molto apprezzato!
Risposta accettata:
Non riesco a pensare a una soluzione che gestisca l'incremento del contatore in modo più intelligente, ma dovrebbe funzionare:
i=0
for fi in abc_??????.png; do
mv "$fi" abc_$i.png
i=$((i+1))
done
Dovrebbe essere sicuro usare abc_*.png
perché è espanso prima del primo mv
viene mai eseguito, ma può essere utile essere molto specifici in quanto si vogliono solo file con un timestamp di sei caratteri alla fine.