• Datum und Uhrzeit aus dem Dateinamen parsen um dieses in einem Skript weiter zu verwenden.
  • Fehler? Ergänzungen? Fragen? Schreib mir.

Datum und Uhrzeit von EXIF-Daten in Datei-Datumsstempel schreiben

# Prevent some folder issues.
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd ${SCRIPTDIR}

EXTENSION="JPG"
COUNT=`ls -1 *.${IMG_EXT} 2>/dev/null | wc -l`
# Prevent actions on not existing files.
if [ ${COUNT} != 0 ]; then
    for FILE in *.${EXTENSION}; do   
        #convert ${FILE} -auto-orient ${FILE}
        #exiftool -xmp -b ${FILE} > ${FILE}.xmp
        
        FILE_DATE=$(exiftool -dateFormat "%Y%m%d%H%M.%S" -DateTimeOriginal -s -S ${FILE})
        touch -t ${FILE_DATE} ${FILE}
    done
fi

Datum und Uhrzeit aus Dateinamen parsen und in EXIF-Daten schreiben

SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd ${SCRIPTDIR}

EXTENSION="JPG"
COUNT=`ls -1 *.${EXTENSION} 2>/dev/null | wc -l`
if [ ${COUNT} != 0 ]; then
    for FILE in *.${EXTENSION}; do
        DATE_YEAR=$(echo "${FILE}" | cut -d '_' -f 1 | cut -d '-' -f 1)
        DATE_MON=$(echo "${FILE}" | cut -d '_' -f 1 | cut -d '-' -f 2)
        DATE_DAY=$(echo "${FILE}" | cut -d '_' -f 1 | cut -d '-' -f 3)
        TIME_H=$(echo "${FILE}" | cut -d '_' -f 2 | cut -d '#' -f 1 | cut -c 1-2)
        TIME_M=$(echo "${FILE}" | cut -d '_' -f 2 | cut -d '#' -f 1 | cut -c 3-4)
        TIME_S=$(exiftool -dateFormat "%S" -DateTimeOriginal -s -S ${FILE})
        #echo "${DATE_YEAR} ${DATE_MON} ${DATE_DAY} ${TIME_H} ${TIME_M} ${TIME_S}"
        
        exiftool -AllDates="${DATE_YEAR}:${DATE_MON}:${DATE_DAY} ${TIME_H}:${TIME_M}:${TIME_S}" -overwrite_original -q ${FILE}
        
        #convert ${FILE} -auto-orient ${FILE}
        #exiftool -xmp -b ${FILE} > ${FILE}.xmp
        
        FILE_DATE=$(exiftool -dateFormat "%Y%m%d%H%M.%S" -DateTimeOriginal -s -S ${FILE})
        touch -t ${FILE_DATE} ${FILE}
    done
fi

Datum und Uhrzeit relativ ändern

SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd ${SCRIPTDIR}

EXTENSION="JPG"
COUNT=`ls -1 *.${EXTENSION} 2>/dev/null | wc -l`
if [ ${COUNT} != 0 ]; then
    for FILE in *.${EXTENSION}; do
        #        -AllDates-="y:m:d H:M:S"
        exiftool -AllDates+="0:3:0 0:0:0" -overwrite_original -q ${FILE}
        exiftool -AllDates-="0:0:23 0:0:0" -overwrite_original -q ${FILE}
        #convert ${FILE} -auto-orient ${FILE}
        #exiftool -xmp -b ${FILE} > ${FILE}.xmp
        
        FILE_DATE=$(exiftool -dateFormat "%Y%m%d%H%M.%S" -DateTimeOriginal -s -S ${FILE})
        touch -t ${FILE_DATE} ${FILE}
    done
fi