Here's a quick and dirty shell script I wrote to rename all the files in a directory based upon a search and replace string:
#!/bin/sh
S=$1
R=$2
if [ -z "$R" ]; then
echo "Usage: rename.sh <search> <replace>"
exit
fi
for i in `ls *$S*`; do mv $i $(echo $i | sed s/$S/$R/); done
Be careful, virtually no error checking is done.

Yikes… why not just use mmv?