Translate command tr

NAME
tr - translate or delete characters

SYNOPSIS
tr [OPTION]… SET1 [SET2]

DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output.

   -c, --complement
          first complement SET1

   -d, --delete
          delete characters in SET1, do not translate

   -s, --squeeze-repeats
          replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that charac-
          ter

   -t, --truncate-set1
          first truncate SET1 to length of SET2

   --help display this help and exit

   --version
          output version information and exit

   SETs are specified as strings of characters.  Most represent themselves.  Interpreted sequences are:

   \NNN   character with octal value NNN (1 to 3 octal digits)

   \\     backslash

   \a     audible BEL

   \b     backspace

   \f     form feed

   
 new line

   \r     return

   	     horizontal tab

   \v     vertical tab

   CHAR1-CHAR2
          all characters from CHAR1 to CHAR2 in ascending order

   [CHAR*]
          in SET2, copies of CHAR until length of SET1

   [CHAR*REPEAT]
          REPEAT copies of CHAR, REPEAT octal if starting with 0

   [:alnum:]
          all letters and digits

   [:alpha:]
          all letters

   [:blank:]
          all horizontal whitespace

   [:cntrl:]
          all control characters

   [:digit:]
          all digits

   [:graph:]
          all printable characters, not including space

   [:lower:]
          all lower case letters

   [:print:]
          all printable characters, including space

   [:punct:]
          all punctuation characters

   [:space:]
          all horizontal or vertical whitespace

   [:upper:]
          all upper case letters

   [:xdigit:]
          all hexadecimal digits

   [=CHAR=]
          all characters which are equivalent to CHAR

   Translation occurs if -d is not given and both SET1 and SET2 appear.  -t may be  used  only  when  translating.   SET2  is
   extended  to  length  of  SET1 by repeating its last character as necessary.  Excess characters of SET2 are ignored.  Only
   [:lower:] and [:upper:] are guaranteed to expand in ascending order; used in SET2 while translating, they may only be used
   in  pairs  to  specify case conversion.  -s uses SET1 if not translating nor deleting; else squeezing uses SET2 and occurs
   after translation or deletion.

Description:

convert all filenames to lowercase in the current working directory
Example:

#! /bin/sh
# tolower.sh: convert file names to lower case
# in the current
working directory
# Choose either all the files in a directory or
# a
command-line list
if [ "$#" -gt 0 ]; then
       
filelist="$@" # just the files on command line
else
       
filelist=`ls` # all files
fi
for file in $filelist; do
# Use the grep command
to determine if the file
# has an upper case letter
# Determine the
destination of the mv command by
# down shifting all the
# letters in the file
name. Command substituting an
# echo of the file name to the translate filter,
tr,
# performs the downshift
        if echo "$file"|grep [A-Z]
> /dev/null; then
                mv "$file" `echo
"$file"|tr "[A-Z]" "[a-z]"`
       
fi
done

Description:

wrapped output - ups, hope this is better ;o)
Example:

#! /bin/sh
if [ "$#" -gt 0 ]; then
   filelist="$@" #
just the files on command line
else
   filelist=`ls` # all files
fi
for file
in $filelist; do
   if echo "$file"|grep [A-Z] > /dev/null;
then
      mv "$file" `echo "$file"|tr
"[A-Z]" "[a-z]"`
   fi
done