Этот сценарий предназначен только для 1 вхождения определенного файла. Таким образом, если есть два файла с одинаковым именем в разных каталогах, будет сообщено только об одном. Не проверено.
declare -a arr
tmp1=$$tmp1
while read file
do
base=$(basename "$file")
echo "$base" >> "$tmp1"
arr["$base"]="$file"
done <(find "$DataDir")
cat "$tmp1" | sort | uniq > "$tmp1"
tmp2=$$tmp2
cat "${Region}_${date}.txt" | sort | uniq > "$tmp2"
for file in "$(join <(cat "$tmp1") <(cat "$tmp2"))"
do
echo "${arr["$file"]}" >> ${runDir}/st_$Region
done
for file in "$(cat "$tmp1" "$tmp2" | sort | uniq -u)"
do
echo "$file" >> ${APP_HOME}/${Region}_filesnotfound_$date.txt
done
rm "$tmp1"
rm "$tmp2"