• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Umbennen von Dateien oder Rechnen mit Zeit Strings

teflon

Newbie
Hallo!

Ich möchte eine größere Menge an Foto-Dateien sortieren.

Ausgesucht habe ich mir eine Methode bei der
die Dateinamen nach den Exif Informationen gebildet
werden.
YYYYMMTT_HHMMSS_[Originalname].JPG
Dies wird von einem Programm erledigt.


Soweit, so gut.
Nun stelle man sich vor, es gibt Bilder aus vesrchiedenen
Kameras, deren Zeit nicht miteinander synchronisiert ist.
Wenn man nun diese Bilder in die korrekte Reihenfolge
bringen moechten, so muß man nach dem man einen
Offset ermittelt hat, diesen in den Dateinamen einbringen.

Dies moechte ich nicht zu Fuß machen, sondern in einem
Script. Hat jemand eine Idee wie ich den oben angegeben
String von Datum und Uhrzeit mit einem Offset versehen kann,
und somit automatisch die Dateien umbenennen kann?
Es geht nur um das umbennen.

Habe leider keine brauchbare Idee. 8-(

Hoffe ich habe mich verstaendlich ausgedrückt.
Vielleicht ein Beispiel:
Original: 20070609_223547_BLA.JPG
Offset: 2Minuten 32 Sekunden (152 Sek.)
Ziel: 20070609_223819_BLA.JPG

Gruß
Teflon
 

regexer

Advanced Hacker
teflon schrieb:
Vielleicht ein Beispiel:
Original: 20070609_223547_BLA.JPG
Offset: 2Minuten 32 Sekunden (152 Sek.)
Ziel: 20070609_223819_BLA.JPG

date kann rechnen und die Ausgabe des Datums formatieren. Dein Beispiel:
Code:
date -d '20070609 22:35:47 152 seconds' '+%Y%m%d_%H%M%S'
Das Ganze noch in eine entsprechende Schleife gepackt, ein mv für den rename hinzugefügt ...
 
OP
T

teflon

Newbie
Hallo,

besten Dank fuer die Antwort!
Geht das Ganze auch mit negativem Offset?
Sprich -152 Sekunden?

Gruß
Teflon
 
OP
T

teflon

Newbie
Denken hilft, ein ago bringt's an dieser Stelle!

date -d '20070609 22:35:47 152 seconds ago' '+%Y%m%d_%H%M%S'

Also noch einmal besten Dank!

Gruß
Teflon
 
OP
T

teflon

Newbie
Hmmm, trotz denken habe ich noch ein Problem Variablen zu nutzen.
Aus
date -d '20070609 22:35:47 152 seconds ago' '+%Y%m%d_%H%M%S'
wuerde ich gern

a=20070609
b=22:35:47
c=152
date -d '$a $b $c seconds ago' '+%Y%m%d_%H%M%S'
machen.
Das funktioniert aber nicht. Habe verschieden Varianten ausprobiert,
aber irgendwie habe ich noch nicht so richtig verstanden, was das
Problem ist.

Gruß
Teflon
 

WernerS

Newbie
Hallo!

Das einfach Hochkomma verhindert das Einsetzen der Zahlenwerte für die Variablen a, b und c. Versuch es mal so:

Statt

Code:
a=20070609
b=22:35:47
c=152
date -d '$a $b $c seconds ago' '+%Y%m%d_%H%M%S'

schreib mal den ersten Ausdruck mit Doppelhochkomma:

Code:
a=20070609
b=22:35:47
c=152
date -d "$a $b $c seconds ago" '+%Y%m%d_%H%M%S'

Ciao
Werner
 

regexer

Advanced Hacker
Übrigens habe ich auch probiert, dass date die Eingabe schon entsprechend formatiert annimmt. Anscheinend ist das nicht möglich, und du musst wirklich mit verschiedenen Formatierungen für Ein- und Ausgabe leben...
 
Oben