logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

tr - translate or delete characters

Author

       Written by Jim Meyering.

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=Ctr instead of plain tr.

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.

Name

       tr - translate or delete characters

Reporting Bugs

       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

See Also

       Full documentation <https://www.gnu.org/software/coreutils/tr>
       or available locally via: info '(coreutils) tr invocation'

GNU coreutils 9.5                                  April 2025                                              TR(1)

Synopsis

tr [OPTION]... STRING1 [STRING2]

See Also