All pastes #56529 Raw Edit

Mine

public text v1 · immutable
#56529 ·published 2006-05-17 11:01 UTC
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 .