aboutsummaryrefslogtreecommitdiffstats
path: root/examples/scripts.v2/lowercase
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scripts.v2/lowercase')
-rw-r--r--examples/scripts.v2/lowercase44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/scripts.v2/lowercase b/examples/scripts.v2/lowercase
new file mode 100644
index 0000000..fd2ec5d
--- /dev/null
+++ b/examples/scripts.v2/lowercase
@@ -0,0 +1,44 @@
+#! /bin/bash
+#
+# original from
+# @(#) lowercase.ksh 1.0 92/10/08
+# 92/10/08 john h. dubois iii (john@armory.com)
+#
+# conversion to bash v2 syntax done by Chet Ramey
+
+Usage="Usage: $name file ..."
+phelp()
+{
+echo "$name: change filenames to lower case.
+$Usage
+Each file is moved to a name with the same directory component, if any,
+and with a filename component that is the same as the original but with
+any upper case letters changed to lower case."
+}
+
+name=${0##*/}
+
+while getopts "h" opt; do
+ case "$opt" in
+ h) phelp; exit 0;;
+ *) echo "$Usage" 1>&2; exit 2;;
+ esac
+done
+
+shift $((OPTIND - 1))
+
+for file; do
+ filename=${file##*/}
+ case "$file" in
+ */*) dirname=${file%/*} ;;
+ *) dirname=. ;;
+ esac
+ nf=$(echo $filename | tr A-Z a-z)
+ newname="${dirname}/${nf}"
+ if [ "$nf" != "$filename" ]; then
+ mv "$file" "$newname"
+ echo "$0: $file -> $newname"
+ else
+ echo "$0: $file not changed."
+ fi
+done