Alle 00:25, giovedì 30 marzo 2006, Sandro Tosi ha scritto: > Alcune note allo script: > > *** per la selezione dei file > > for INPUT in $(ls $ORIG); do > --> > for INPUT in $ORIG/* ; do
qual'é la differenza tra le due chiamate? funzionano entrambe, ma quale delle due è preferibile usare? AGGIORNAMENTO: con il tuo metodo il nome del file di input è del tipo: .//nomefile mentre con il mio è solamente nomefile quindi per questo progetto ritengo sia da usare il mio metodo... > *** per RESULT > > RESULT=`/usr/bin/file $INPUT | grep $INFORMAT` > # if [ -z $RESULT ]; then # perché mi da errore? result dovrebbe > essere vuoto quando il file non è grafico. > > non ti da' errore... testi che sia di lunghezza 0, e per un file non > grafico lo e', quindi entri nel then tutte le volte che non hai una > foto... forse e' -n $RESULT da usare... effettivamente è da usare il parametro -n, ma ho capito il motivo dell'errore, mettendo solo $RESULT, cerca di eseguire il contenuto della veriabile, per ottenere l'effetto voluto bisogna mettere nell'IF "$RESULT" (nota i doppi apici) e quindi viene valutata la striga che contiene il ritorno del comando precedente.... > > METADATA=`identify -verbose $INPUT |grep "Date Time Original"` > # if [ -z $RESULT ]; then #ho unn ritorno solo per quelle > immagini che arrivano da una macchina fotografica. > > perche' verifichi questa condizione anche dopo? l'hai fatto prima e > non cambi valore alla variabile era un errore, in realtà volevo valutare il valore di $METADATA, che se esiste contiene i dati che servono, altrimenti non è una immagine che posso trattare... > > > *** per la variabile di conteggio > > while [ -f NEWNAME ] #se esiste già il nome generato ne > genero uno nuovo. > #incrrementare $COUNT (devo guardarmi i tipi di dati in > bash.) NEWNAME=$ANNO+$MESE+$GIORNO+$ORE+$MINUTI+"_"+$COUNT done > --> > while [ -f NEWNAME ] #se esiste già il nome generato ne > genero uno nuovo. > let COUNT=COUNT+1 > NEWNAME=$ANNO+$MESE+$GIORNO+$ORE+$MINUTI+"_"+$COUNT > done ho corretto la stringa e ora funziona bene, il problema ora è come faccio con l'incremento di COUNT a mantenerlo formattato a 2 cifre? > > > *** per il nome del file: > > cat afile | grep "Date Time Original" | sed 's/\.$//' | awk -F " " '{ > print $(NF-1)":"$NF }' | sed 's/:/-/g' > 2005-12-03-09-01-07 per ora ho mantenuto il metodo che avevo fatto io, una volta che ho testato che tutto il resto del programma funzioni, provo a cambiare il modo di generare il nome del file... > > dove `afile' e' l'output che avevi mandato ieri; ti ho lasciato anche > i secondi, se non li vuoi, puoi toglierlo per esecizio... ;)) ho alcune fotografie che sono state scattate in sequenza rapida, quindi al di sotto del minuto, e i secondi in questo caso farebbero comodo per mantenerli in sequenza, ma mi pare che il nome risulti ancora più appesantito... magari usare un flag per far decidere all'utente se usarlo o meno? > Se vuoi qualche chiarimento, non hai che da chiedere!! ;) certo che lo voglio, altrimenti non avrei continuato a postare... :D > > Prova a modificarlo cosi' e vediamo... fatto, ora ho allegato una versione funzionante, anche se va rifinita in tutte le parti dei comandi... Byez -- Gollum1 Tesssssoro, dov'é il mio tessssoro?
rename-photos.sh
Description: application/shellscript