tr man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

TR(1)									 TR(1)

NAME
       tr - translate characters

SYNOPSIS
       /usr/bin/tr [-cds] [string1 [string2]]

       /usr/xpg4/bin/tr [-cs] string1 string2

       /usr/xpg4/bin/tr -s | -d [-c] string1

       /usr/xpg4/bin/tr -ds [-c] string1 string2

       /usr/xpg6/bin/tr [-c | -C] [-s] string1 string2

       /usr/xpg6/bin/tr -s [-c | -C] string1

       /usr/xpg6/bin/tr -d [-c | -C] string1

       /usr/xpg6/bin/tr -ds [-c | -C] string1 string2

DESCRIPTION
       The  tr	utility	 copies the standard input to the standard output with
       substitution or deletion of selected characters. The options  specified
       and  the	 string1  and string2 operands control translations that occur
       while copying characters and single-character collating elements.

OPTIONS
       The following options are supported:

       -c
	     Complements the set of values specified by string1.

       -C
	     Complements the set of characters specified by string1.

       -d
	     Deletes all occurrences of input characters that are specified by
	     string1.

       -s
	     Replaces  instances  of repeated characters with a single charac‐
	     ter.

       When the -d option is not specified:

	   o	  Each input character found in the array specified by string1
		  is  replaced	by the character in the same relative position
		  in the array specified by string2. When the array  specified
		  by string2 is shorter than the one specified by string1, the
		  results are unspecified.

	   o	  If the -c option is specified, the complements of the values
		  specified  by	 string1  are placed in the array in ascending
		  order by binary value.

	   o	  If the -C option is specified, the complements of the	 char‐
		  acters  specified  by	 string1 (the set of all characters in
		  the current character set, as defined by the current setting
		  of  LC_CTYPE,	 except	 for  those  actually specified in the
		  string1 operand) are placed in the array in ascending colla‐
		  tion	sequence, as defined by the current setting of LC_COL‐
		  LATE.

	   o	  Because the order in which characters specified by character
		  class	 expressions or equivalence class expressions is unde‐
		  fined, such expressions should only be used if the intent is
		  to  map  several  characters	into one. An exception is case
		  conversion, as described previously.

       When the -d option is specified:

	   o	  Input characters found in the array specified by string1 are
		  deleted.

	   o	  When	the  -C option is specified with -d, all values except
		  those specified by string1  are  deleted.  The  contents  of
		  string2 are ignored, unless the -s option is also specified.

	   o	  If the -c option is specified, the complements of the values
		  specified by string1 are placed in the  array	 in  ascending
		  order by binary value.

	   o	  The  same  string  cannot be used for both the -d and the -s
		  option.  When both options are specified, both string1 (used
		  for deletion) and string2 (used for squeezing) are required.

       When  the  -s  option is specified, after any deletions or translations
       have taken place, repeated sequences of the same character is  replaced
       by  one	occurrence of the same character, if the character is found in
       the array specified by the last operand. If the last operand contains a
       character class, such as the following example:

	 tr -s '[:space:]'

       the last operand's array contains all of the characters in that charac‐
       ter class. However, in a case conversion, as described previously, such
       as

	 tr -s '[:upper:]' '[:lower:]'

       the  last operand's array contains only those characters defined as the
       second characters in each of the toupper or tolower character pairs, as
       appropriate. (See toupper(3C) and tolower(3C)).

       An empty string used for string1 or string2 produces undefined results.

OPERANDS
       The following operands are supported:

       string1
       string2
		  Translation control strings. Each string represents a set of
		  characters to be converted into an array of characters  used
		  for the translation.

       The  operands  string1  and string2 (if specified) define two arrays of
       characters. The constructs in the following list can be used to specify
       characters  or  single-character collating elements. If any of the con‐
       structs result in  multi-character  collating  elements,	 tr  excludes,
       without a diagnostic, those multi-character elements from the resulting
       array.

       character
		      Any character not described by one  of  the  conventions
		      below represents itself.

       \octal
		      Octal sequences can be used to represent characters with
		      specific coded values.  An octal sequence consists of  a
		      backslash	 followed  by  the  longest  sequence of one-,
		      two-, or three-octal-digit  characters  (01234567).  The
		      sequence	causes	the character whose encoding is repre‐
		      sented by the one-, two- or three-digit octal integer to
		      be  placed into the array. Multi-byte characters require
		      multiple, concatenated escape sequences  of  this	 type,
		      including the leading \ for each byte.

       \character
		      The  backslash-escape  sequences \a, \b, \f, \n, \r, \t,
		      and \v are supported. The results	 of  using  any	 other
		      character,  other	 than  an  octal  digit, following the
		      backslash are unspecified.

   /usr/xpg4/bin/tr
       c-c

   /usr/bin/tr
       [c-c]
		    In the POSIX locale, this construct represents  the	 range
		    of collating elements between the range endpoints (as long
		    as neither endpoint is  an	octal  sequence	 of  the  form
		    \octal),   inclusively,   as   defined  by	the  collation
		    sequence. The characters  or  collating  elements  in  the
		    range  are	placed	in  the	 array	in ascending collation
		    sequence. If the second  endpoint  precedes	 the  starting
		    endpoint  in  the  collation  sequence,  it is unspecified
		    whether the range of collating elements is empty, or  this
		    construct  is  treated  as invalid.	 In locales other than
		    the POSIX locale, this construct has unspecified behavior.

		    If either  or  both	 of  the  range	 endpoints  are	 octal
		    sequences of the form \octal, represents the range of spe‐
		    cific coded binary values  between	two  range  endpoints,
		    inclusively.

       [:class:]
		    Represents all characters belonging to the defined charac‐
		    ter class, as  defined  by	the  current  setting  of  the
		    LC_CTYPE  locale  category.	 The following character class
		    names are accepted when specified in string1:

		      alnum  blank  digit  lower  punct	 upper
		      alpha  cntrl  graph  print  space	 xdigit

		    In addition,  character  class  expressions	 of  the  form
		    [:name:]  are  recognized  in those locales where the name
		    keyword has been  given  a	charclass  definition  in  the
		    LC_CTYPE category.

		    When  both the -d and -s options are specified, any of the
		    character class names are accepted in string2.  Otherwise,
		    only  character  class  names  lower or upper are valid in
		    string2 and then only if the corresponding character class
		    upper  and	lower,	respectively, is specified in the same
		    relative position in  string1.  Such  a  specification  is
		    interpreted	  as  a	 request  for  case  conversion.  When
		    [:lower:] appears in  string1  and	[:upper:]  appears  in
		    string2,  the arrays contain the characters from the toup‐
		    per mapping	 in  the  LC_CTYPE  category  of  the  current
		    locale.  When  [:upper:]  appears in string1 and [:lower:]
		    appears in string2, the arrays contain the characters from
		    the	 tolower  mapping in the LC_CTYPE category of the cur‐
		    rent locale. The first character from each mapping pair is
		    in	the  array  for	 string1 and the second character from
		    each mapping pair is in the array for string2 in the  same
		    relative position.

		    Except  for case conversion, the characters specified by a
		    character class expression are placed in the array	in  an
		    unspecified order.

		    If	the  name  specified for class does not define a valid
		    character class in the current  locale,  the  behavior  is
		    undefined.

       [=equiv=]
		    Represents	all characters or collating elements belonging
		    to the same equivalence class as equiv, as defined by  the
		    current  setting  of  the  LC_COLLATE  locale category. An
		    equivalence class expression is allowed only  in  string1,
		    or in string2 when it is being used by the combined -d and
		    -s options. The characters belonging  to  the  equivalence
		    class are placed in the array in an unspecified order.

       [x*n]
		    Represents	n  repeated  occurrences  of  the character x.
		    Because this expression is used to map multiple characters
		    to	one,  it is only valid when it occurs in string2. If n
		    has a leading 0, it is interpreted as an octal value. Oth‐
		    erwise, it is interpreted as a decimal value.

		    If	n  is  omitted or is 0, /usr/bin/tr interprets this as
		    huge;  /usr/xpg4/bin/tr  and  /usr/xpg6/bin/tr  interprets
		    this  as  large enough to extend thestring2-based sequence
		    to the length of the string1-based sequence.

USAGE
       See largefile(5) for the description of the behavior of tr when encoun‐
       tering files greater than or equal to 2 Gbyte ( 2^31 bytes).

EXAMPLES
       Example 1 Creating a list of words

       The  following  example	creates	 a list of all words in file1, one per
       line in file2, where a word is taken to be a maximal string of letters.

	 tr −cs "[:alpha:]" "[\n*]" <file1 >file2

       Example 2 Translating characters

       This example translates all lower-case characters in  file1  to	upper-
       case and writes the results to standard output.

	 tr "[:lower:]" "[:upper:]" <file1

       Notice  that  the caveat expressed in the corresponding example in XPG3
       is no longer in effect. This case conversion is now a special case that
       employs	the  tolower and toupper classifications, ensuring that proper
       mapping is accomplished (when the locale is correctly defined).

       Example 3 Identifying equivalent characters

       This example uses an equivalence class to identify accented variants of
       the  base character e in file1, which are stripped of diacritical marks
       and written to file2.

	 tr "[=e=]" e <file1 >file2

ENVIRONMENT VARIABLES
       See environ(5) for descriptions of the following environment  variables
       that  affect  the  execution of tr: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
       LC_MESSAGES, and NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0
	     All input was processed successfully.

       >0
	     An error occurred.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

   /usr/bin/tr
       ┌───────────────┬─────────────────┐
       │ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
       ├───────────────┼─────────────────┤
       │CSI	       │ Enabled	 │
       └───────────────┴─────────────────┘

   /usr/xpg4/bin/tr
       ┌────────────────────┬───────────────────┐
       │  ATTRIBUTE TYPE    │  ATTRIBUTE VALUE	│
       ├────────────────────┼───────────────────┤
       │CSI		    │ Enabled		│
       ├────────────────────┼───────────────────┤
       │Interface Stability │ Committed		│
       ├────────────────────┼───────────────────┤
       │Standard	    │ See standards(5). │
       └────────────────────┴───────────────────┘

   /usr/xpg6/bin/tr
       ┌────────────────────┬───────────────────┐
       │  ATTRIBUTE TYPE    │  ATTRIBUTE VALUE	│
       ├────────────────────┼───────────────────┤
       │CSI		    │ Enabled		│
       ├────────────────────┼───────────────────┤
       │Interface Stability │ Committed		│
       ├────────────────────┼───────────────────┤
       │Standard	    │ See standards(5). │
       └────────────────────┴───────────────────┘

SEE ALSO
       ed(1),	sed(1),	   sh(1),    tolower(3C),    toupper(3C),    ascii(5),
       attributes(5), environ(5), largefile(5), regex(5), standards(5)

NOTES
       Unlike some previous versions, /usr/xpg4/bin/tr correctly processes NUL
       characters in its input stream. NUL characters can be stripped by using
       tr -d '\000'.

				  Mar 3, 2009				 TR(1)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net