tr (Unix)
From Wikipedia, the free encyclopedia
tr (abbreviated from translate or transliterate) is a command in Unix-like operating systems.
When executed, the program reads from the standard input and writes to the standard output. It takes as parameters two sets of characters, and replaces occurrences of the characters in the first set with the corresponding elements from the other set.
[edit] Examples
Translate "\n" to "\r\n":
$ tr -A "\12" "\15\12" < input1 > output1 $ tr -A "^M" "\15\12" < output1 > output2
(notice \n, \12 and ^M being representations of a line feed in character escape code, ASCII octal and caret notation, respectively; \r and \15 being representations of a carriage return. For background on the need for this translation, see newline).
The following inputs shift the input letters of the alphabet back by one character.
$ echo "ibm 9000" >computer.txt $ tr a-z za-y <computer.txt hal 9000
In some older versions of tr (not POSIX-compliant), the character ranges must be enclosed in brackets, which must then be quoted against interpretation by the shell:
$ tr "[a-z]" "z[a-y]" <computer.txt
If it's not known in advance which variant of tr is being invoked, then in this example one would have to write the ranges in unabbreviated form (tr abcdefghijklmnopqrstuvwxyz zabcdefghijklmnopqrstuvwxy). For some applications, a single invocation is portable despite containing ranges: ROT13 can be portably implemented as tr "[A-M][N-Z][a-m][n-z]" "[N-Z][A-M][n-z][a-m]". (This works because the brackets, which are not part of the range syntax in POSIX tr, align properly in the two strings, and hence will be safely interpreted as a request to map the bracket character to itself.)
Ruby and Perl also have an internal tr operator, which operates analogously.
[edit] See also
[edit] External links
- The tr Command - by The Linux Information Project (LINFO)
- [1] The program's manpage
|
||||||||||||||||||||||||||

