Se os nomes de arquivo dos arquivos de filmes e legendas coincidirem e somente as extensões forem diferentes, algo assim deve funcionar.
#!/bin/bash
movie_dir=~/Movies
subtitle_dir=~/Subtitles
log=~/log.txt
for i in "$movie_dir"/*;do
filname="${i%.*}"
if [ ! -e "$subtitle_dir/$filename.srt" ];then
echo "$filename" >> "$log"
fi
done
EDITAR Para quando cada arquivo de filme estiver em sua própria pasta, tente:
#!/bin/bash
movie_dir=~/Movies
subtitle_dir=~/Subtitles
log=~/log.txt
find "$movie_dir" -type f -name "*.mp4" -o -name "*.mkv" | while read i;do
filename="$(basename "${i%.*}")"
if [ ! -e "$subtitle_dir/$filename.srt" ];then
echo "$filename" >> "$log"
fi
done
Esse segundo caminho deve funcionar independentemente da estrutura da pasta do filme, novamente, contanto que os nomes dos arquivos sejam os mesmos.