diff options
Diffstat (limited to 'examples/scripts/fixfiles.bash')
-rw-r--r-- | examples/scripts/fixfiles.bash | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/examples/scripts/fixfiles.bash b/examples/scripts/fixfiles.bash deleted file mode 100644 index 15f3ba8..0000000 --- a/examples/scripts/fixfiles.bash +++ /dev/null @@ -1,92 +0,0 @@ -#! /bin/bash -# -# From: c2a192@ugrad.cs.ubc.ca (Kazimir Kylheku) -# Newsgroups: comp.unix.shell,comp.os.linux.misc -# Subject: GNU Bash Script to fix filenames -# Date: 28 Mar 1996 14:54:43 -0800 -# Organization: Computer Science, University of B.C., Vancouver, B.C., Canada -# -#This is a script which takes a list of directories, descends through each one -#and ``corrects'' filenames that: -# -# - contain filename globbing characters: * ? [ ] -# - quote characters: ' " -# - control characters: 0-31 (127 is not dealt with---oops) -# - - or + as the first character -# -# The GNU version of 'tr' is required. Also requires 'sed'. -# -# Script to process a given list of directories recursively -# and rename each file to something that is reasonable. -# -# The rules are: -# -# 1. replace each space, [, ], *, ", and ' character in the name with a -# period. -# 2. replace each control character 1..31 with a printable character obtained -# by adding 64 to the ascii value. ^A becomes A, ^B becomes B and so on. -# 3. replace a - or + occuring at the beginning of the name with a # -# -# 4. if the resulting name has been changed in any way, then -# 5. if a file of the new name already exists, then -# 6. add a . to the new name and goto step 5. -# 7. rename the old name to the new name -# -# written by Kaz Kylheku <kaz@cafe.net> -# March 1996 -# Vancouver, Canada -# -# requires GNU 'bash', GNU 'tr', and some sort of 'sed' program. -# -# minimal conversion to bash v2 syntax done by Chet Ramey - -processfile() -{ - new_name="`echo -n $1 | tr '\173\175\052\077\042\047 ' '.......' | - tr '[\000-\037]' '[\100-\137]' | - sed -e 's/^-/#/' -e 's/+/#/'`" - if [ "$new_name" != "$1" ] ; then - while [ -e "$new_name" ] ; do - new_name="${new_name}." - done - echo changing \"$1\" to \"$new_name\" in `pwd` - mv -- "$1" "$new_name" - fi -} - -processdir() -{ - set -f - local savepwd="$PWD" - if cd "$1" ; then - set +f - for file in * ; do - set -f - if [ "$file" != "." ] && [ "$file" != ".." ] ; then - if [ -L "$file" ] ; then - echo "skipping symlink" $file in `pwd` - elif [ -d "$file" ] ; then - processdir "$file" - elif [ -f "$file" ] ; then - processfile "$file" - fi - fi - done - cd "$savepwd" - fi -} - -shopt -s nullglob dotglob - -if [ $# = 0 ] ; then - echo "$0: must specify a list of directories" >&2 - echo "$0: usage: $0 directory [directory ...]" >&2 - exit 2 -fi - -while [ $# != 0 ] ; do - processdir "$1" - shift -done - -exit 0 |