Organize Frames

#!/bin/bash
# Sort camera RAW frames into calibration folders
# Usage: organize.sh <source-dir>

SRC="${1:-.}"

for d in darks flats bias lights; do
  mkdir -p "$SRC/$d"
done

while IFS= read -r -d '' f; do
  case "$(basename "$f")" in
    *dark*|*DARK*) mv "$f" "$SRC/darks/" ;;
    *flat*|*FLAT*) mv "$f" "$SRC/flats/" ;;
    *bias*|*BIAS*) mv "$f" "$SRC/bias/" ;;
    *)             mv "$f" "$SRC/lights/" ;;
  esac
done < <(find "$SRC" -maxdepth 1 -type f \( -iname '*.cr2' -o -iname '*.raw' -o -iname '*.fit*' \) -print0)

echo "Done."