#!/bin/zsh zmodload zsh/stat function ctime { zstat -F '%s' +ctime -- "$1" } function mdate { local dfmt="$(grep -m 1 -oP '(?<=^[dD]ate\:\ ).*' $1)" date '+%s' -d "$dfmt" } while read LINE; do fls=(${(s. .)LINE}) unset cts typeset -A cts for i in $fls; do cts[$i]=$(ctime "$i") done unset mds typeset -A mds for i in $fls; do mds[$i]=$(mdate "$i") done while [ "${#fls}" -gt 1 ]; do TMS=() mf="" if [ "${#mds}" -gt 1 ]; then TMS=(${(nO)${(v)mds}}) mf="${(k)mds[(r)${TMS[1]}]}" unset "mds[${(b)mf}]" else TMS=(${(nO)${(v)cts}}) mf="${(k)cts[(r)${TMS[1]}]}" unset "cts[${(b)mf}]" fi fls=(${fls:#$mf}) echo "$mf" done done