stopped allowing ampersands in file names, added documentation lines.
authorChris Koeritz <fred@gruntose.com>
Thu, 20 Aug 2015 18:03:17 +0000 (14:03 -0400)
committerChris Koeritz <fred@gruntose.com>
Thu, 20 Aug 2015 18:03:17 +0000 (14:03 -0400)
scripts/files/replace_spaces_with_underscores.sh

index 560b771118fe6864d37d44cf7fb9fbfe65c2431f..a26371d4a934a8fa3974befadd5d0ccb0e780d5f 100644 (file)
@@ -12,7 +12,11 @@ fi
 
 while [ $# -gt 0 ]; do
   file="$1"; shift
-  newname="$(echo "$file" | tr -s ' ' '_' | tr -d "\$\!@#%}{)(][\\\~',:?><\"" | sed -e 's/\([0-9]\)_\./\1./g' | sed -e 's/_-_/-/' )"
+  # first turn spaces into underscores.  then process characters we don't want
+  # in names.  then translate multiple underscores into just one.  then turn
+  # number followed by underscore into just number (?).  then translate
+  # underscore dash underscore into just dash.
+  newname="$(echo "$file" | tr -s ' ' '_' | tr -d "\$\!@&#%}{)(][\\\~',:?><\"" | sed -e 's/__/_/g' | sed -e 's/\([0-9]\)_\./\1./g' | sed -e 's/_-_/-/' )"
   if [ "$file" != "$newname" ]; then
     # we've effected a name change, so let's actually do it.
     echo "'$file' => '$newname'"