#!/usr/bin/env bash
toDots='\,;:|+@#$%^&*~'
toUnderscores='}{]['"'"'="()`!'
runOrDebug() {
if (( debug )); then
printf '%s\n' "${*@Q}"
else
"$@"
fi
}
renameFiles() {
local name subDots subBoth
for name; do
subDots=${name//["$toDots"]/.}
subBoth=${subDots//["$toUnderscores"]/_}
if [[ $subBoth != "$name" ]]; then
runOrDebug mv -- "$name" "$subBoth"
fi
done
}
debug=1 renameFiles '[/a],/;[p:r|o\b+lem@a#t$i%c]/@(%$^!/(e^n&t*ry)~='
IyEvdXNyL2Jpbi9lbnYgYmFzaAoKdG9Eb3RzPSdcLDs6fCtAIyQlXiYqficKdG9VbmRlcnNjb3Jlcz0nfXtdWyciJyInPSIoKWAhJwoKcnVuT3JEZWJ1ZygpIHsKICBpZiAoKCBkZWJ1ZyApKTsgdGhlbgogICAgcHJpbnRmICclc1xuJyAiJHsqQFF9IgogIGVsc2UKICAgICIkQCIKICBmaQp9CgpyZW5hbWVGaWxlcygpIHsKICBsb2NhbCBuYW1lIHN1YkRvdHMgc3ViQm90aAoKICBmb3IgbmFtZTsgZG8KICAgIHN1YkRvdHM9JHtuYW1lLy9bIiR0b0RvdHMiXS8ufQogICAgc3ViQm90aD0ke3N1YkRvdHMvL1siJHRvVW5kZXJzY29yZXMiXS9ffQoKICAgIGlmIFtbICRzdWJCb3RoICE9ICIkbmFtZSIgXV07IHRoZW4KICAgICAgcnVuT3JEZWJ1ZyBtdiAtLSAiJG5hbWUiICIkc3ViQm90aCIKICAgIGZpCiAgZG9uZQp9CgpkZWJ1Zz0xIHJlbmFtZUZpbGVzICdbL2FdLC87W3A6cnxvXGIrbGVtQGEjdCRpJWNdL0AoJSReIS8oZV5uJnQqcnkpfj0n