[PLUTO-help] AAA cercasi: script bash per convertire e rinominare 48000 file .png ricorsivamente in determinate cartelle :-)

Nicola Ruggero nicola a nxnt.org
Dom 4 Lug 2010 15:33:37 CEST


Il 03 luglio 2010 11.41, dax <6uncesso a infinito.it> ha scritto:
> * salvo il risultato di "locate *.png" in un file testuale che poi
> andrò a leggere riga per riga (una soluzione più elegante sicuramente
> potrebbe essere di bufferizzare su un array o altra struttura dati più
> performante)
> * esamino ciascuna riga (qui bisognerà ciclare con un for) cercando le
> stringhe ("Album" | "Singoli") & "png" e in caso positivo...converto
> il file in jpg con "convert" e lo rinomino in cover.jpg...elimino il
> vecchio file .png

find . -name "*.png" | grep -i -e "Album" -e "Singoli" | while read
filepng | do filejpg = $(echo $nomefile | sed 's#.png#.jpg#g');
convert $filepng $filejpg; done

Spiegazioni:
1. Find trova tutti i file .png nella cartella corrente ed in tutte le
sottocartelle e scrive i nomi nello stdout
2. Grep seleziona non distinguendo le maiuscole (-i) le righe che
contengono "Album" o "Singoli (da verificare se funziona il parametro
-e)
3. Il ciclo while legge dallo stdout le righe e mette ciascuna riga
(ad ogni ciclo) in $filepng
4. filejpg viene valorizzato con $filepng sostituendo con sed ".png" -> ".jpg"
5. Convert effettua le sue operazioni
6. done conclude il while

Note:
1. Va controllata la sintassi di convert, non me la ricordo
2. Va controllata la sintassi di grep -e, per vedere se seleziona
correttamente le righe.
3. Il sed non tiene conto di file scritti così:
"nomefile.png.ciao.jpg" perché converte tutto -->
"nomefile.jpg.ciao.jpg" !!!

ciao,
Nicola



More information about the pluto-help mailing list