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

Re: Rinominare fotografie.



On Mon, 27 Mar 2006 21:48:11 +0100
Gollum1 <gollum1@tiscali.it> wrote:

> Alle 22:55, lunedì 27 marzo 2006, giuliano ha scritto:
> > [cut]
> >
> gollum1@montefato:~$ identify -verbose 03122005.jpg
> 03122005.jpg JPEG 1280x960 DirectClass 349kb
> Image: 03122005.jpg
>   Format: JPEG (Joint Photographic Experts Group JFIF format)
>   Geometry: 1280x960
>   [...]
>     Date Time Original: 2005:12:03 09:01:07.
>     Date Time Digitized: 2005:12:03 09:01:07.
>   [...]
> 
> come vedi con il verbose fornisce una miriade di dati (che ho eliminato 
> in questo caso perché non innerenti al problema), come vedi esiste il 
> Date Time Original che fornisce tutti i dati di cui ho bisogno.

prendo atto :)

> devo trovare il modo di estrarre solo i dati che mi servono (anno mese 
> giorno ora e minuti) e comporli in una unica stringa, che poi verrà 
> usata come base per il nome del file stesso...
> 
> certo... sarebbe certo meglio se fosse tutto in un unico passaggio, 
> senza file di appoggio...

questo potrebbe essere facile, ad es.:
	#! /usr/bin/perl -w

	my @files = `identify -verbose *.jpg`;

	for my $i (0 .. @files-1) {
		print "$i: $files[$i] \n";
	}
	die;
ti dovrebbe dare tutti gli output nell'array @files;

> per estrarre i dati, pensavo di usare sed e awk, ma ancora non ci sono 
> arrivato...

come vedi uso a malapena perl, di sed e awk non so :)

> dovrebbe esserci anche un controllo che il nome che si va a generare non 
> esista già, nel qual caso inserire un _: e un numero incrementale....
> 
> appena ho di nuovo un po' di tempo ci rpenso su... poi vi faccio 
> sapere...

continuando l'ipotesi di prima dovresti controllare l'output se
contiene qualche pattern utile a separare ulteriormente ogni
stringa, nel caso del perl, ad es. @params = split /\s+/, $files
[$i] o split /\n/, $files[$i]; dovresti poi controllare quale
$params[$k] contiene la stringa "Date Time Original:" e
prelevarne la data, ad es. 2005:12:03 09:01:07; anche qui
potresti togliere l'ora oppure prelevare l'anno, il mese ed il
giorno se vuoi ricomporli in modo diverso, ecc...

> Byez  
> -- 
> Gollum1

ciao, giuliano

PS: non e' certo il piu' bello e pulito codice (sono un
programmatore domenicale), pero' di solito prima cerco di
risolvere un problema e poi l'affino e quindi mi comporto di
conseguenza.... :) 



Reply to: