View Full Version : Rinominare 900 files per data
Xemertix
17-02-2009, 10:19
Ciao,qualcuno potrebbe suggerirmi un semplice script bash che mi rinonimi sequenzialmente (1 a 1000 ad es) i file dal più vecchio (1) al più nuovo (1000)..
mi serve per rinominare + di 900 immagini bmp su cui poi usare l'ocr...
qualcosa del genere (non ne so nulla)
#!/bin/bash
mv $*.bmp `ls -1t`
grazie
Caldwell83
17-02-2009, 13:11
#!/bin/bash
NUMERO=1
for file in `ls -1t *.bmp`
do
mv $file ${NUMERO}_${file}
NUMERO=`expr $NUMERO + 1`
done
Risultato:
Prima:
File1.bmp
File2.bmp
File3.bmp
Dopo:
1_File1.bmp
2_File2.bmp
3_File3.bmp
Xemertix
17-02-2009, 14:18
Grazie,va abbastanza bene anche se mi ritrovo
1_File1493.bmp (più nuovo,ultima mod. sab 14 feb 2009 02:16:39 CET)
2_File1492.bmp
3_File1488.bmp
....
983_File6.bmp
984_File5.bmp
985_File1.bmp (più vecchio,ultima mod. sab 14 feb 2009 00:08:57 CET)
cioè dal più nuovo al vecchio,quindi l'inverso..forse riguarda ls -1t
ps.alcuni file come vedi (File 2,3,4 ad es.) non ci sono,ma ciò non dovrebbe influenzare la disposizione degli stessi,visto che si parla di tempi.
Caldwell83
17-02-2009, 14:21
Si, è colpa dell'ls
Cambia con "ls -1rt"
Per i file "mancanti" nessun probelma ;)
Xemertix
17-02-2009, 14:36
Si vero,grazie! un ultimissima cosa: se si volessero mettere gli zero avanti? (a causa di alcuni programmi stupidi..),tipo
001_File1.bmp
010_File10.bmp
100_File100.bmp
Potente questa bash e mi sembra anche abbastanza semplice comunque..sarebbe da imparare,se non ci volesse troppo tempo eheh
grazie ancora :)
Caldwell83
17-02-2009, 14:47
#!/bin/bash
padda()
{
awk 'END { printf( "%0'$2'd\n", "'$1'" ) }' /dev/null
}
NUMERO=1
for file in `ls -1rt *.bmp`
do
new_file=`padda ${NUMERO} 3`_${file}
mv $file ${new_file}
NUMERO=`expr $NUMERO + 1`
done
;)
Xemertix
17-02-2009, 14:54
Ok,fix'd...thanks :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.