wer schreibt mir ein exif - file rename script?

  • hallo leute


    ich brauche eure hilfe. vielleicht waere jemand so nett und schreibt mir ein kurzes script, das folgendes macht:


    dir struktur sieht so aus:


    100925 Kindergeburtstag
    101001 Hausbesichtigung
    ....


    in den ordnern sind dann jpg dateien. diese sollen folgendermassen heissen:


    100925 - 123415 Kindergeburtstag.jpg also
    yymmdd - hhmmss Ordnername ohne Datum.jpg


    starten wuerde ich gerne im root, also dort wo die oben genannten dirs sind, und dann alles in einem aufwasch umbenennen. die aufnahmezeiten/datum kommen natuerlich aus den exif-daten der jpg dateien.


    ist sowas schnell machbar, und waere jemand so nett, und wuerde mir hier helfen?
    ich hab hier 300 ordner die ich so benennen muesste mit zig tausend fotos drin. per hand ist das unmoeglich ;)


    danke im voraus!!!!


    servus izeman

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • Scheint eigentlich ziemlich simpel zu sein, schau dir mal den Befehl


    Code
    jhead -n[format-string]


    Experten mögen mir widersprechen (ist nur auf die Schnelle ergoogelt).


    Gruß
    Martin


    Tante Edith sagt:


    Gerade getestet. Ist total simpel!!


    Code
    vdr02 SHARES # jhead -n P1010015.JPG
    File 'P1010015.JPG' contains no exif date stamp.  Using file date
    P1010015.JPG --> 0713-161404.jpg
    
    
    vdr02 SHARES # jhead -n%Y%m%d-%H%M%S_HALLO 0713-161404.jpg
    File '0713-161404.jpg' contains no exif date stamp.  Using file date
    0713-161404.jpg --> 20080713-161404_HALLO.jpg

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

    Einmal editiert, zuletzt von maro1969 ()

  • naja. das alleine nutzt mir nix. ich brauch ja auch das rundherum, das mir die einzelnen verzeichnisse einliest, dann das datum vorne weg entfernt, ins dir reingeht, dort die exif daten liest, und dann damit und dem dir-namen den filenamen erzeugt, dann wieder ein verzeichnis rauf geht, und wieder weitermacht.
    KEINEN BLASSEN tau wie ich das machen soll ;)

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • Ah so!!


    Wenn du mir ein wenig Zeit (also nicht grad bis morgen) gibst mach ich dir das.


    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

  • Sodale:


    Einfach in den die Bilderordner enthaltenden Ordner wechseln und eingeben:


    Code
    for i in $(find -name *.jpg);do DIR=`dirname $i|awk 'BEGIN { FS = "/" } ; { print $NF }'`;jhead -n%Y%m%d-%H%M%S-$DIR $i; done


    Und die Kiste fliegt!


    Gruß
    Martin


    Ach so: VORHER jhead INSTALLIEREN!!

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

  • danke marco, aber: tut nicht :(


    Code
    fileserver:/var/tmp/x# ls -la
    insgesamt 15
    drwxr-xr-x 6 root root  1024 18. Okt 18:51 .
    drwxrwxrwt 5 root root  1024 18. Okt 18:49 ..
    drwxr-xr-x 2  501 root  1024 26. Sep 11:43 100906 Amelie Erster Schultag
    drwxr-xr-x 2  501 root  1024 26. Sep 11:57 100924 Amelie Geburtstag
    drwxr-xr-x 2  501 root 10240 26. Sep 11:36 Amelie
    drwxr-xr-x 2  501 root  1024 26. Sep 11:45 Kathi


    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • ja genau. du koenntest ja vorher das leerzeichen gehen ein _ ersetzen, wenns leichter geht, und dann wieder auf BLANK retour :)

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • Versuch das mal:


    Code
    find -name *.jpg | while read datei;do DIR=`dirname $datei|awk 'BEGIN { FS = "/" } ; { print $NF }'|sed 's/[0-9]//g'|sed 's/^ *\([^ ]*\)*/\1/'`;jhead -n%Y%m%d-%H%M%S-$DIR $datei;done


    Das sollte mit deinen Leerzeichen umgehen können. Leerzeichen raus und wieder rein ist Krampf.


    Das hat bei mir sowohl mit Leerzeichen in Ordnern als auch in Dateinamen geklappt.


    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

    Einmal editiert, zuletzt von maro1969 ()

  • nope. leider nicht


    Code
    fileserver:/var/tmp/x# find -name *.jpg | while read datei;do DIR=`dirname $datei|awk 'BEGIN { FS = "/" } ; { print $NF }'|sed 's/[0-9]//g'|sed 's/^ *\([^ ]*\)*/\1/'`;jhead -n%Y%m%d-%H%M%S-$DIR $datei;done
    dirname: zustzlicher Operand Amelie/2004-09-30?
    »dirname --help« gibt weitere Informationen.
    
    
    Error : No such file
    in file './000000'
    dirname: zustzlicher Operand Amelie/2004-09-30?
    »dirname --help« gibt weitere Informationen.

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • Code
    vdr02 Bildertest # find -name *.JPG | while read datei;do DIR=`dirname "$datei"|awk 'BEGIN { FS = "/" } ; { print $NF }'|sed 's/[0-9]//g'|sed 's/^ *\([^ ]*\)*/\1/'`;jhead -n%Y%m%d-%H%M%S_"$DIR" "$datei";done
    ./191203 Monte Carlo/IMG_0005.JPG --> ./191203 Monte Carlo/20070120-102632_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG_0006.JPG --> ./191203 Monte Carlo/20070120-192921_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG_0007.JPG --> ./191203 Monte Carlo/20070120-192952_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG_0008.JPG --> ./191203 Monte Carlo/20070120-193034_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG_0009.JPG --> ./191203 Monte Carlo/20070121-091208_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG_0010.JPG --> ./191203 Monte Carlo/20070121-091317_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG 0002.JPG --> ./191203 Monte Carlo/20070120-101538_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG 0003.JPG --> ./191203 Monte Carlo/20070120-101610_Monte Carlo.jpg
    ./191203 Monte Carlo/IMG 0004.JPG --> ./191203 Monte Carlo/20070120-101643_Monte Carlo.jpg


    Man beachte: Leerzeichen im Verzeichnisnamen und in Dateinamen.


    Die vorherige Version hat gestern wohl nur funktioniert weil ich vorher mit dem IFS herumgespielt hatte. Heute morgen wollte das dann auch nicht mehr. Sorry.

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

    Einmal editiert, zuletzt von maro1969 ()

  • geil!!! danke dir viel vielmals!! das funtkioniert PERFEKT!
    DANKE

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • PUHH!! - Jetzt bin ich aber froh!! - PRIMA


    Ich denke so kann man klar kommen und ich muß das nicht mehr in ein Skript packen?


    Gruß
    Martin

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

  • ;)


    noe nix script. so passt das wunderbar. DAS kann ich selbst :)

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • hmmm. so ganz funkt es doch nicht ;)
    wenn ich das _ wegbekommen will - was jetzt nicht unbedingt ein muss ist, weil das kann ich ja nachher auch automatisch entfernen, dann geht das nicht.


    also statt:
    000000 Kathi/20100904-182315_Kathi.jpg haette ich lieber
    000000 Kathi/20100904-182315 Kathi.jpg


    und ausserdem macht er den "000000 Amelie" ordner anders:


    Code
    drwxr-xr-x 2  501 root 10240 19. Okt 12:52 000000 Amelie
    drwxr-xr-x 2  501 root  1024 19. Okt 12:59 000000 Kathi
    drwxr-xr-x 2  501 root  1024 19. Okt 12:59 100906 Amelie Erster Schultag
    drwxr-xr-x 2  501 root  1024 19. Okt 12:59 100924 Amelie Geburtstag


    Code
    -rwxr-xr-x 1 root root 3754517 25. Dez 2008  081225 - 132501 Amelie.jpg
    -rwxr-xr-x 1 root root 3552385 25. Dez 2008  081225 - 132542 Amelie.jpg
    -rwxr-xr-x 1 root root 3530550 25. Dez 2008  081225 - 132545 Amelie.jpg


    kann das sein, dass hier die exif daten anders sind? gibt's da unterschiede?
    du siehst was ich meine? er schreibt nicht "2010, sonder nur 10", bzw in dem fall "08"


    achja: und jpg und JPG ist ihm natuerlich auch nicht egal. dass kann ich aber auch haendisch aendern bevor ich das script laufen lasse *g*

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

    Einmal editiert, zuletzt von izeman ()

  • Zitat

    also statt: 000000 Kathi/20100904-182315_Kathi.jpg haette ich lieber 000000 Kathi/20100904-182315 Kathi.jpg


    Also das ist der Teil, der den Dateinamen bastelt:


    Code
    jhead -n%Y%m%d-%H%M%S_"$DIR"


    änder den mal in:


    Code
    jhead -n%Y%m%d-%H%M%S" $DIR"


    Zitat

    kann das sein, dass hier die exif daten anders sind? gibt's da unterschiede?


    Ich kenn mich mit Exif auch nicht wirklich aus. Aber ich habe gelesen, daß sich die von Kamera zu Kamera schon stark unterscheiden können.


    Du kannst die Exif-Daten mit


    Code
    jhead -v Bild.jpg


    anzeigen. Vergleich doch mal.


    Tante Edith fragt:


    Warum bist du eigentlich so scharf auf Leerzeichen? Die machen doch nur Ärger!!

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

    Einmal editiert, zuletzt von maro1969 ()

  • Hab noch was herausgefunden:


    jhead -n ignoriert stoisch Dateien, die es schon mal bearbeitet hat. Um ein nochmaliges Umbenennen zu erzwingen muß


    Code
    jhead -nf


    gesetzt sein, also in meinem letzten Post:


    Code
    jhead -nf%Y%m%d-%H%M%S" $DIR"




    Zitat

    Renaming is by default restricted to files whose names consist largely of digits. This effectively restricts renaming to files that have not already been manually renamed, as the default sequential names from digital cameras consist largely of digits. Use the -nf option to force renaming of all files.

    Hat mein Neffe abgestaubt:


    Gen2VDR auf Asus M2A-VM/Sempron LE-1100 mit TT-FF und Skystar2 in Thermaltake "Mozart"


    Aktuell: WIRD ERGÄNZT

    Einmal editiert, zuletzt von maro1969 ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!