More EXIF-from-filename setter.

This commit is contained in:
Markus Birth 2016-03-07 22:56:10 +01:00
parent f83dcbf8d7
commit 0318810510
2 changed files with 56 additions and 0 deletions

28
exiffromfn2.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# Sets EXIF date from filename yyyymmdd-HHMM.jpg
for f in *.jpg *.JPG; do
if [ "$f" = "*.jpg" -o "$f" = "*.JPG" ]; then
continue
fi
echo "File: $f"
DATEPART=${f:0:13}
if [ ${#DATEPART} -ne 13 ]; then
echo "No date in filename: $f"
continue
fi
if ! [[ "$DATEPART" =~ ^(198|199|200|201|202)[0-9]{5}-[0-9]{4}$ ]]; then
echo "Not numeric: $DATEPART ($f)"
continue
fi
YEAR=${DATEPART:0:4}
MONTH=${DATEPART:4:2}
DAY=${DATEPART:6:2}
HOUR=${DATEPART:9:2}
MINUTE=${DATEPART:11:2}
SECOND="00"
DATE="$YEAR:$MONTH:$DAY $HOUR:$MINUTE:$SECOND"
exiv2 mo -M "set Exif.Photo.DateTimeOriginal '$DATE'" -M "set Exif.Photo.DateTimeDigitized '$DATE'" $f
done

28
exiffromfn3.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# Sets EXIF date from filename yymmdd_HHMMSS.jpg
for f in *.jpg *.JPG; do
if [ "$f" = "*.jpg" -o "$f" = "*.JPG" ]; then
continue
fi
echo "File: $f"
DATEPART=${f:0:13}
if [ ${#DATEPART} -ne 13 ]; then
echo "No date in filename: $f"
continue
fi
if ! [[ "$DATEPART" =~ ^[0-1][0-9]{5}_[0-9]{6}$ ]]; then
echo "Not numeric: $DATEPART ($f)"
continue
fi
YEAR="20${DATEPART:0:2}"
MONTH=${DATEPART:2:2}
DAY=${DATEPART:4:2}
HOUR=${DATEPART:7:2}
MINUTE=${DATEPART:9:2}
SECOND=${DATEPART:11:2}
DATE="$YEAR:$MONTH:$DAY $HOUR:$MINUTE:$SECOND"
exiv2 mo -M "set Exif.Photo.DateTimeOriginal '$DATE'" -M "set Exif.Photo.DateTimeDigitized '$DATE'" $f
done