A opção exclude do rsync não suporta realmente a regex, é mais uma correspondência de padrões de shell globbing.
se esses diretórios forem bastante estáticos, você deve apenas listá-los em um arquivo e usar --exclude-from=/full/path/to/file/exclude_directories.txt
.
Atualizado para fornecer exemplo
Primeiro, basta colocar os diretórios em um arquivo:
find . -type d -regex '.*/[0-9]*$' -print > /tmp/rsync-dir-exlcusions.txt
ou
( cat <<EOT
123414
42344523
345343
2323
EOT ) > /tmp/rsync-directory-exclusions.txt
então você pode fazer seu trabalho de rsync
rsync -avHp --exlude-from=/tmp/rsync-directory-exclusions.txt /path/to/source/ /path/to/dest/
Você só precisa de uma etapa extra para configurar o arquivo de texto que contém os diretórios de exclusão, 1 por linha.
tenha em mente que o caminho dos diretórios no trabalho é o caminho relativo de como o rsync vê o diretório.