Não sei se sua divisão com bash
está correta.
Porque parei de trabalhar com o bash há muito tempo.
Mas quando você quiser a saída de encontrar em um loop, tente isto:
find . -name '*.xlsx' -print0 |
while IFS= read -r -d $'find . -name '*.xlsx' -print0 |
while IFS= read -r -d $'%pre%' z; do
name="${z%%_*}"
dest=".${name//[ .-]/}"
mkdir "$dest"
done
' z; do
name="${z%%_*}"
dest=".${name//[ .-]/}"
mkdir "$dest"
done