#!/bin/bash TAGS_TO_TRANSFER=( -Orientation -CreateDate -ExposureTime -FNumber -ISO -FocalLength ) extractRAW() { [[ -n "$1" ]] || return prev="./JPGs/${1%.*}.JPG" if [[ ! -e "$prev" ]]; then exiftool -progress \ -b \ -PreviewImage \ "$1" \ > "$prev" exiftool -overwrite_original \ -tagsFromFile="$1" \ "${TAGS_TO_TRANSFER[@]}" \ "$prev" fi } mkdir -p JPGs for file; do [[ -f $file ]] || continue mime="$(file -b --mime-type "$file")" if [[ $mime = image/x-canon-cr2 ]]; then extractRAW "$file" elif [[ "$(head -1 "$file")" = "#Geeqie collection" ]]; then while read line; do extractRAW "$file" done <"$(sed -E '/^#/d;s/(^"|"$)//g' "$file")" else >&2 printf "Unrecognized format: $file\n" fi done rmdir JPGs >/dev/null 2>&1