zmv is a mv alternative bundled with zsh that has an expressive globbing syntax. In many cases it can replace loops, and it even has a dry run option! https://filipe.kiss.ink/zmv-zsh-rename/