Hallo,
ich versuche ein Script zu schreiben, das aus der Exif-Info von jpg's das Datum ausliest und (zwecks Ordnung) an den Namen des Bildes anhängt.
Im konkreten Fall habe ich ein Verzeichnis /home/username/pics in welchem so ca. 600 Fotos mit Dateinamen imgp2107.jpg, imgp2108.jpg, etc. liegen.
Nun möchte ich die Dateinamen in einem Perl-Script in ein Array einlesen.
Ich habe das so versucht:
exec ("ls -1 /home/username/pics > /home/username/pics/temp/pics.tmp");
open (PICS, "/home/username/pics/temp/pics.tmp");
@list = <PICS>;
close (PICS);
print @list;
Ich bekomme aber keine Ausgabe.
Auch mit zB.
print $list[1];
nicht.
Ich habe schon in anderen Foren gesucht und Beiträge gefunden, deren Code fast exakt wie meiner ist, bei denen funktioniert das angeblich.
Voraussetzung soll sein, das das File aus dem man ausliest zeilenweise aufgebaut sein muss, und diese Voraussetzung sollte ja mit "ls -1" gegeben sein.
Die erste Zeile des Scripts funktioniert jedenfalls. Es kommt nur einfach keine Ausgabe und auch keine Fehlermeldung, aber nach Ausführung befindet sich im angegebenen Verzeichnis auch meine pics.tmp-Datei, in der in jeder Zeile der Name eines jpg's steht.
Alles andere was das Script noch so können muss - Datum aus Exif extrahieren und an den Dateinamen anhängen, ne Schleife damit ein Foto nach dem Anderen abgearbeitet wird usw. sollte dann kein Problem mehr sein, es scheitert erstmal nur am Array.
Ich hätte auch überhaupt kein Problem damit, das ganze mit einem Shell-Script zu realisieren.
Da hab ich nur noch weniger Ahnung von Arrays - mit Perl hatte ich schon mal ein bißchen zu tun.
In der bash käme ich wahrscheinlich mit dem Rest des Scripts besser klar (cat,cut,grep,tr, etc)
Keinen Rat mehr weiss...
ich versuche ein Script zu schreiben, das aus der Exif-Info von jpg's das Datum ausliest und (zwecks Ordnung) an den Namen des Bildes anhängt.
Im konkreten Fall habe ich ein Verzeichnis /home/username/pics in welchem so ca. 600 Fotos mit Dateinamen imgp2107.jpg, imgp2108.jpg, etc. liegen.
Nun möchte ich die Dateinamen in einem Perl-Script in ein Array einlesen.
Ich habe das so versucht:
exec ("ls -1 /home/username/pics > /home/username/pics/temp/pics.tmp");
open (PICS, "/home/username/pics/temp/pics.tmp");
@list = <PICS>;
close (PICS);
print @list;
Ich bekomme aber keine Ausgabe.
Auch mit zB.
print $list[1];
nicht.
Ich habe schon in anderen Foren gesucht und Beiträge gefunden, deren Code fast exakt wie meiner ist, bei denen funktioniert das angeblich.
Voraussetzung soll sein, das das File aus dem man ausliest zeilenweise aufgebaut sein muss, und diese Voraussetzung sollte ja mit "ls -1" gegeben sein.
Die erste Zeile des Scripts funktioniert jedenfalls. Es kommt nur einfach keine Ausgabe und auch keine Fehlermeldung, aber nach Ausführung befindet sich im angegebenen Verzeichnis auch meine pics.tmp-Datei, in der in jeder Zeile der Name eines jpg's steht.
Alles andere was das Script noch so können muss - Datum aus Exif extrahieren und an den Dateinamen anhängen, ne Schleife damit ein Foto nach dem Anderen abgearbeitet wird usw. sollte dann kein Problem mehr sein, es scheitert erstmal nur am Array.
Ich hätte auch überhaupt kein Problem damit, das ganze mit einem Shell-Script zu realisieren.
Da hab ich nur noch weniger Ahnung von Arrays - mit Perl hatte ich schon mal ein bißchen zu tun.
In der bash käme ich wahrscheinlich mit dem Rest des Scripts besser klar (cat,cut,grep,tr, etc)
Keinen Rat mehr weiss...