# /bin/bash #$Id: unspace.sh,v 1.2 2015/06/19 06:21:49 root Exp $ find . -maxdepth 1 -type f | while read file; do # Check filename for items we want to modify. # Including: space, parens, cap letters, colons, bangs, hashes, leading dashes (WIP). echo "$file" | egrep ' |\(|\)|[A-Z]|[:!#]^\-' >/dev/null if [ $? == 0 ]; then # Escape old filenames for command-line compatibility. #OLDFILE=`echo "$file" | sed "s~ ~\\\ ~g;s~(~\\\(~g;s~)~\\\)~g;s~\!~\\\!~g;s~:~\\\:~g;s~&~\\\&~g;s~\'~\\'~g"`; OLDFILE=`echo "$file" | sed 's~ ~\\\ ~g;s~(~\\\(~g;s~)~\\\)~g;s~\!~\\\!~g;s~:~\\\:~g;s~&~\\\&~g'`; # Replace unwanted chars and strings. #NEWFILE=`echo "$file" | sed "s/ /-/g;s/\.jpeg/\.jpg/Ig;s/[():\#!']//g;s/^-//g;s/\&/-/g;s/\\\$/-/g" | tr '[:upper:]' '[:lower:]'`; NEWFILE=`echo "$file" | sed 's/ /-/g;s/\.jpeg/\.jpg/Ig;s/[():\#!]//g;s/^-//g;s/\&/-/g;s/\\\$/-/g' | tr '[:upper:]' '[:lower:]'`; if [ -f ${NEWFILE} ]; then echo -en "WARNING: $NEWFILE already exists: "; fi # TODO - warn if newfile is same as oldfile? # If we pass the 'cp' item as first parameter, convert to a plate-like name, and copy instead. if [ "$1" == "cp" ]; then echo "mv -i -- $OLDFILE ${NEWFILE}" | sed 's/mv/cp -p/g;s~ ./i~ ./ak-__rdw\~i~g' | grep jpg else echo "mv -i -- $OLDFILE ${NEWFILE}" fi else echo "# No parameters yet." fi done