Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tr(1) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ed, red

sh, Rsh

ascii



TR(1,C)                     AIX Commands Reference                      TR(1,C)



-------------------------------------------------------------------------------
tr



PURPOSE

Translates characters.

SYNTAX


           +--------+   +-----------+   +-----------+
/usg/tr ---| +----+ |---|           |---|           |---|
           +-| -A |-+   +- string1 -+   +- string2 -+
            ^| -c ||
            || -d ||
            || -s ||
            |+----+|
            +------+


               +--------+   +-----------+   +-----------+
/usr/ucb/tr ---| +----+ |---|           |---|           |---|
               +-| -A |-+   +- string1 -+   +- string2 -+
                ^| -c ||
                || -d ||
                || -s ||
                |+----+|
                +------+


Note:  This command does not have MBCS support.

DESCRIPTION

The tr command copies characters from the standard input to the standard output
with substitution or deletion of selected characters.  Input characters from
string1 are replaced with the corresponding characters in string2.  tr cannot
handle an ASCII NUL (\000) in string1 or string2; it always deletes NUL from
the input.

Note:  AIX is shipped with /usr/bin/tr linked to /usg/tr.  Unless this link is
       modified, entering tr executes /usg/tr (that is, you do not have to use
       the full path name).

In the AIX version abbreviations that can be used to introduce ranges of
characters or repeated characters are:

[a-z]   Stands for a string of characters whose ASCII codes run from character
        a to character z, inclusive.




Processed November 8, 1990          TR(1,C)                                   1





TR(1,C)                     AIX Commands Reference                      TR(1,C)



[a*num] Stands for num repetitions of a.  The value of num is considered to be
        in decimal unless the first digit of num is 0, in which case it is
        considered to be in octal.  When num is 0 or is omitted, it is treated
        as a number large enough to pad string2 with a.

In the BSD version, the abbreviation that can be used to introduce ranges of
characters is:

a-z  Stands for a string of characters whose ASCII codes run from character a
     to character z inclusive.  Brackets are not special characters and the
     hyphen (-) is a special character.

Use the escape character \ (back slash) to remove special meaning from any
character in a string.  Use the \ followed by 1, 2, or 3 octal digits for the
ASCII code of a character.

FLAGS

-A Translates on a byte-by-byte basis.  When you specify this flag, tr does not
   support extended characters.

-c Complements (inverts) the set of characters in string1 with respect to the
   universe of characters whose ASCII codes are 001 through 377 octal, if you
   specify -A, and all non-null characters, if you do not specify -A.

-d Deletes all input characters in string1.

-s Changes characters that are repeated output characters in string2 into
   single characters.

EXAMPLES

  1. To translate braces into parentheses:

      /usg/tr  '{}'  '()'  <textfile  >newfile

    This translates each ""{"" to ""("" and each ""}"" to "")"".  All other
    characters remain unchanged.

  2. To translate lowercase characters to uppercase:

      /usg/tr  '[a-z]'  '[A-Z]'  <textfile  >newfile

    or

      /usr/ucb/tr  a-z  A-Z  <textfile  >newfile

  3. In the AIX version, this is what happens if the strings are not the same
    length:

      /usg/tr '[0-9]'  '#'  <textfile  >newfile




Processed November 8, 1990          TR(1,C)                                   2





TR(1,C)                     AIX Commands Reference                      TR(1,C)



    This translates each ""0"" to a # (number sign).

    Note:  If the two character strings are not the same length, the extra
           characters in the longer one are ignored.

  4. In the BSD version, if the strings are not the same length:

      /usr/ucb/tr  0-9  '#'  <textfile  >newfile

    This translates each digit to a #.

    Note:  If string2 is too short, it is padded to the length of string1 by
           duplicating its last character.

  5. In the AIX version, to translate each digit to a #:

      /usg/tr '[0-9]'  '[#*]'   <textfile  >newfile

    The * tells tr to repeat the # enough times to make the second string as
    long as the first one.

  6.  To translate each string of digits to a single #:

      /usg/tr  -s  '[0-9]'  '[#*]'   <textfile  >newfile

    or, with the BSD version:

      /usr/ucb/tr  -s  0-9  '#'   <textfile  >newfile

  7. To translate all ASCII characters that are not specified:

      /usg/tr -c '[ -~]' '[A-_]?' <textfile >newfile

    This translates each nonprinting ASCII character to the corresponding
    control key letter (""\001"" translates to ""A"", ""\002"" to ""B"", etc.).
    ASCII DEL (""\177""), the character that follows ""~"" (tilde), translates
    to ?.

    Or, with the BSD version:

      /usr/ucb/tr -c ' -~' 'A-_?' <textfile >newfile

  8. To create a list of the words in a file:

      /usg/tr  -cs  '[a-z][A-Z]'  '[\012*]'    <textfile  >newfile

    or, with the BSD version:

      /usr/ucb/tr  -cs 'a-zA-Z'  '\012'  <textfile  >newfile

RELATED INFORMATION




Processed November 8, 1990          TR(1,C)                                   3





TR(1,C)                     AIX Commands Reference                      TR(1,C)



See the following commands:  "ed, red" and "sh, Rsh."

See the ascii file in AIX Operating System Technical Reference.

See "Introduction to International Character Support" in Managing the AIX
Operating System.

















































Processed November 8, 1990          TR(1,C)                                   4



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026