rendered paste body#!/usr/local/bin/bash
#
# Rename files and folders in MP3 releases.
# $MERHABA: mp3_rename.sh,v 1.0 2007/11/11 15:09:05 awad Exp $
#
if [ $1 ]; then mv="echo"; else mv="mv"; fi
function do_folders () {
for old in *; do
if [ -f "$old" ]; then do_files "$old"
elif [ -d "$old" ]; then
new=`echo "$old" | tr "[:upper:]" "[:lower:]"`
new=`echo "$new" | sed -e "s/ /_/g" \
-e "s/)//g" \
-e "s/-(/-/g" \
-e "s/_(/-/g" \
-e "s/(//g" \
-e "s/_-_/-/g" \
-e "s/---*/-/g" \
-e "s/___*/-/g" \
-e "s/\./_/g" \
-e "s/,/-/g" \
-e "s/'//g" \
-e "s/___*/_/g" \
-e "s/_-/-/g" \
-e "s/-_/-/g" \
-e "s/&/and/g" \
-e "s/\([-_]\)ft[_-]/\1feat_/g" \
-e "s/\([-_]\)featuring[_-]/\1feat_/g" \
-e "s/[][]//g"`
if [ "$old" != "$new" ]; then $mv "$old" "$new"; fi
echo "Renaming $old"
cd "$new"; do_folders "$new"; cd ..
else echo "Directory invalid."; fi
done
}
function do_files () {
old=$1
new=`echo "$old" | tr "[:upper:]" "[:lower:]"`
if [[ "$old" == *.* ]]; then
extension=${new##*.}
new=${new%.*}
new=`echo "$new" | sed -e "s/ /_/g" \
-e "s/)//g" \
-e "s/-(/-/g" \
-e "s/_(/-/g" \
-e "s/(//g" \
-e "s/_-_/-/g" \
-e "s/---*/-/g" \
-e "s/___*/-/g" \
-e "s/\./_/g" \
-e "s/,/-/g" \
-e "s/'//g" \
-e "s/___*/_/g" \
-e "s/_-/-/g" \
-e "s/-_/-/g" \
-e "s/\&/and/g" \
-e "s/\([-_]\)ft[_-]/\1feat_/g" \
-e "s/\([-_]\)featuring[_-]/\1feat_/g" \
-e "s/^\([0-9]\{2,3\}\)_/\1-/g" \
-e "s/[][]//g"`
new=`echo "$new"."$extension"`
$mv "$old" "$new"; fi
}
do_folders .