#!/bin/bash function usage() { echo "usage: $0 " echo " Depends on exiftool (from libimage-exiftool-perl)." echo " lat/lon in decimal format [-+][NN.N+]" echo " (lon: east is +, west -; lat: north +, south -)" echo echo " must be writable." exit 1 } if ! [ "$3" ] || ! [ -w "$1" ] || ! $(echo "$2" | grep -q -- "^[-+]\?[0-9.]\+") || ! $(echo "$3" | grep -q -- "^[-+]\?[0-9.]\+") then usage fi function numpart() { echo $1 | sed -e 's/[+-]\?\([0-9.]*\)/\1/' } filename="$1" latitude=`numpart $2` longitude=`numpart $3` if $(echo $2 | grep -q -- "^-"); then latref="South" else latref="North" fi if $(echo $3 | grep -q -- "^-"); then longref="West" else longref="East" fi echo "Updating ${filename}: ${latitude} ${latref}, ${longitude} ${longref}" exiftool \ -GPSLatitudeRef=$latref \ -GPSLatitude=$latitude \ -GPSLongitudeRef=$longref \ -GPSLongitude=$longitude \ "${filename}"