Um pouco velho eu sei, eu queria um script assim:
- listar arquivos com um caractere de hífen
find -iname '*-*.pdf'
- mantenha a parte antes do hífen
find -iname '*-*.pdf' | sed "s/-.*$//"
- remover duplicados: você tem os prefixos que deseja ("John Doe", "Jane Smith") (você pode ignorar os prefixos com apenas uma ocorrência, mas isso provavelmente não será necessário se o comando combine pdf estiver satisfeito com um arquivo e apenas copiá-lo)
find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u
- faça um loop sobre os prefixos, para cada um obtenha a lista dos arquivos que começam com este prefixo e combine-os
IFS=$'\n';for prefix in $(find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u) ; do pdfunite $prefix* $prefix.pdf ; done