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

Re: Bilder: Fortlaufende Datei-Benennung anhand der Exif-Daten erstellen



On Thu, Jun 17, 2010 at 12:06:35PM +0200, Michael Zimmermann wrote:
> On Wed, 16 Jun 2010 20:45:28 +0200
> Sebastian Niehaus <niehaus@nospam.arcornews.de> wrote:
> 
> > ich habe einen Haufen Bilder mit vollkommen inkohärenten
> > Dateinamen. Kann mir jemand einen Ansatz nennen, wie ich anhand der
> > Exif-Daten eine fortlaufende Dateibenennung (z. B. IMG_0001.JPG,
> > IMG_0002.JPG, ....) erzeuge?
> > 
> Also ich nehme das 
> # exiv2 rename *.JPG

Ohne den gesamten Thread gelesen zu haben, hier mal mein Script, das ich
immer verwende, um die Bilder mehrerer Kameras, die auch gerne mal
entweder großgeschriebene oder kleingeschriebene Dateinamen verwenden,
zu mischen und am Ende nur kleinbuchstabige Dateinamen zu haben:


#!/bin/sh -e

unset LANG
unset LANGUAGE
unset LC_ALL

for img in `ls [A-z]*.jpg [A-z]*.JPG 2>/dev/null` ; do
        DATE=`exif --tag='Date and Time (original)' "$img" | grep -i VALUE | sed -e 's/^.*VALUE:[[:space:]]*//i' -e 's/:/-/g' -e 's/ /_/'`
        if [ "$DATE" != "" ] ; then
            TOUCHDATE=`exif --tag='Date and Time (original)' "$img" | grep -i VALUE | sed -e 's/^.*VALUE:[[:space:]]*//i' -e 's/\([0-9]\+\):\([0-9][0-9]\):\([0-9][0-9] \)/\1-\2-\3/'`
            CAM=`exif --tag='Model' "$img" | grep -i VALUE | head -n 1 | sed -e 's?^.*VALUE:[[:space:]]*\([^[:space:]/,]\+\)[/,]*.*?\1?i'`
            IMGSC=`echo "$img" | tr 'A-Z' 'a-z'`
            touch --date="$TOUCHDATE" "$img"; mv "$img" "${DATE}_${CAM}_$IMGSC"
        fi
done


Viele Grüße

      Andreas. 

-- 
http://fam-tille.de


Reply to: