#!/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