#!/bin/sh usage() { echo "usage: $(basename $0) [-i] file" >&2 exit 1 } while getopts ":i" c do case "$c" in i) integers=1;; :|'?') usage;; esac done shift $(($OPTIND - 1)) if [ $# -lt 1 ]; then usage; fi tiffinfo "$1" | nawk -v integers=$integers ' /^ Resolution:.*\(unitless\)/ { pos = match($0, /[0-9]+, [0-9]+/) aspect = substr($0, pos, RLENGTH); sub(/,/, "", aspect) } END { if (! aspect) { print integers ? "1 1" : "1"; exit } if (! integers) { split(aspect, f); aspect = f[2] / f[1] } print aspect }' .