# tr

## NAME



           tr - translate or delete characters
    


## SYNOPSIS



           **tr**[_OPTION_]... _STRING1_ [_STRING2_]
    


## DESCRIPTION



           Translate, squeeze, and/or delete characters from standard input,
           writing to standard output.  STRING1 and STRING2 specify arrays of
           characters ARRAY1 and ARRAY2 that control the action.
    
           **-c** , **-C** , **--complement**
                  use the complement of ARRAY1
    
           **-d** , **--delete**
                  delete characters in ARRAY1, do not translate
    
           **-s** , **--squeeze-repeats**
                  replace each sequence of a repeated character that is
                  listed in the last specified ARRAY, with a single
                  occurrence of that character
    
           **-t** , **--truncate-set1**
                  first truncate ARRAY1 to length of ARRAY2
    
           **--help** display this help and exit
    
           **--version**
                  output version information and exit
    
           ARRAYs 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
    
           \n     new line
    
           \r     return
    
           \t     horizontal tab
    
           \v     vertical tab
    
           CHAR1-CHAR2
                  all characters from CHAR1 to CHAR2 in ascending order
    
           [CHAR*]
                  in ARRAY2, copies of CHAR until length of ARRAY1
    
           [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 STRING1 and STRING2
           appear.  **-t** is only significant when translating.  ARRAY2 is
           extended to length of ARRAY1 by repeating its last character as
           necessary.  Excess characters of ARRAY2 are ignored.  Character
           classes expand in unspecified order; while translating, [:lower:]
           and [:upper:] may be used in pairs to specify case conversion.
           Squeezing occurs after translation or deletion.
    


## BUGS



           Full support is available only for safe single-byte locales, in
           which every possible input byte represents a single character.
           The C locale is safe in GNU systems, so you can avoid this issue
           in the shell by running **LC_ALL=C tr** instead of plain **tr**.
    


* * *