made this script rock now. fixes a lot of ugly names.
authorChris Koeritz <fred@gruntose.com>
Mon, 30 Apr 2012 13:57:28 +0000 (09:57 -0400)
committerChris Koeritz <fred@gruntose.com>
Mon, 30 Apr 2012 13:57:28 +0000 (09:57 -0400)
still could do some more, like by removing tildes and other junk.

scripts/files/remove_bracket_id.sh

index 20a0165e4f07dd9bd5d4d20faf509cad000c4f01..3d3349f04d28a294209497b4d205afa30b7a7a9e 100644 (file)
@@ -1,13 +1,21 @@
+#!/bin/bash
 
+# a handy script for fixing file names imported using second inventory.
+# the names have a hideous long guid as part of them by default.
 
-file=$1
-
-if [ -z "$file" ]; then
-  echo "need a parameter that's a file to remove the id from the name."
-  exit 3
+if [ $# -lt 1 ]; then
+  echo "This script requires one or more file names whose names should be fixed."
+  echo "Any GUID junk embedded in the name within brackets will be removed."
+  exit 1
 fi
 
-newname="$(echo "$file" | sed -e 's/\([^[ ]*\) \[[a-z0-9A-Z-]*\]/\1/')"
-
-mv "$file" "$newname"
+while [ $# -gt 0 ]; do
+  file="$1"; shift
+  newname="$(echo "$file" | sed -e 's/\[[a-z0-9A-Z-]*\]//g' | tr ' ' '_' | tr -d "'" | sed -e 's/\([0-9]\)_\./\1./g' )"
+  if [ "$file" != "$newname" ]; then
+    # we've effected a name change, so let's actually do it.
+    echo "moving '$file' => '$newname'  "
+    mv "$file" "$newname"
+  fi
+done