С zsh
:
files=(???-??-*.avi)
for prefix (${(Mu)files#???-??-}) encode $prefix*.avi
(или кодировать ${(M)files:#$prefix*}
)
Эквивалент с оболочкой GNU ( bash
), а инструменты будут такими:
while IFS= read -u3 -rd '' prefix; do
encode "$prefix-"*.avi 3<&-
done 3< <(printf '%s\0' ???-??-*.avi | grep -oz '^...-..-' | sort -zu)
Тот же принцип. Получаем список файлов, соответствующих шаблону ???-??-*.avi
в текущем каталоге, извлекаем часть, соответствующую ((M)
/grep -o
) ???-??-
(regexp ...-..-
), уникален их ((u)
/sort -u
), а затем зациклиться на этом списке префиксов.