Есть ли простой бескостыльный способ проверить присутствие файлов по маске, помимо перебора в цикле?
Простым скриптом проверяю наличие файлов субтитров, если ничего нет — запускаю whisper. У уже имеющихся файлов в имени может быть указан или не указан язык. Файлов субтитров для одного видео может быть несколько. То есть могут быть $name.srt, $name.en.srt, $name.ru.srt, $name.fr.srt и т.п. в любых сочетаниях или не быть ничего.
for f in *.mp4 ;
do
name="`basename "$f" .mp4`" ;
if [ ! -f "$name"*.srt ] ;
then
ffmpeg -i "$f" ... "$name"... && whisper-cpp ..."$name"... ;
fi ;
done
[ ! -f "$name"*.srt ]
работает, если файла нет, или есть только один. Если файлов несколько, test выдаёт ошибку, и ветка then не выполняется, что тоже приемлемо, но криво.
Как принято поступать в таком случае?
Перемещено hobbit из general