Supondo que não há diretórios no arquivo:
GLOBIGNORE=.:..
mkdir tmpdir1 tmpdir2 targetdir
unzip -d tmpdir1 "$zipfile1"
unzip -d tmpdir2 "$zipfile2"
cd tmpdir1
for file in *; do
if [ -f "../tmpdir2/${file}" ]; then
cat "$file" "../tmpdir2/${file}" >"../targetdir/${file}"
else
mv $file" "../targetdir/"
fi
done
cd ../tmpdir2
mv * targetdir/