Этот сценарий должен сделать то, в чем Вы нуждаетесь. Существует несколько предположений, которые это делает, и это не является чрезмерно модульным. Не имеет никаких проверок также. Нуждался бы в большем количестве специфических особенностей для создания этого более устойчивым.
find . -type f -name 'abc.jar' -exec sh -c '
num=$(echo {} | sed 's#.*Release##' | sed 's#/.*##')
jar xvf {} xyz.xsd
mv xyz.xsd xyz.xsd.${num}
' {} \;
for i in xyz.xsd*; do
currnum=$(echo $i | sed 's#xyz.xsd.##')
let nexnum=currnum+1
[ ! -f xyz.xsd${nexnum} ] || exit
echo "diff $i xyz.xsd${nexnum} > diffs_xyz.xsd_${currnum}_${nexnum}.txt"
done
$ tree -A
.
├── myscript.bash
├── Release1
│ ├── abc.jar
│ └── xyz.jar
├── Release2
│ ├── abc.jar
│ └── xyz.jar
├── Release3
│ ├── abc.jar
│ └── xyz.jar
└── Release43
└── xyz.jar
4 directories, 8 files
.