[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rinominare fotografie.



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?

Attachment: rename-photos.sh
Description: application/shellscript


Reply to: