29 lines
756 B
Bash
Executable File
29 lines
756 B
Bash
Executable File
#!/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
|