Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
tr(1)				 User Commands				 tr(1)

NAME
       tr - translate characters

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

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

       /usr/bin/tr -ds [-c] 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 char-
		acter.

       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 unspec-
	    ified.

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

	 o  If the -C option is	specified, the complements of  the  characters
	    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 collation sequence, as defined by
	    the	current	setting	of LC_COLLATE.

	 o  Because the	order in which characters specified by character class
	    expressions	or equivalence class expressions  is  undefined,  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 spec-
	    ified  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 will be
       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	will contain all of  the  characters  in  that
       character  class.  However,  in	a case conversion, as described	previ-
       ously, such as

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

       the last	operand's array	will contain 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	       Translation control strings. Each string	 represents  a
       string2	       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
		       represented  by	the  one-,  two-  or three-digit octal
		       integer to be placed into the array. Multi-byte charac-
		       ters 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]	       Represents  the range of	collating elements between the
		       range endpoints,	inclusive, as defined by  the  current
		       setting of the LC_COLLATE locale	category. The starting
		       endpoint	must precede the second	endpoint in  the  cur-
		       rent  collation order. The characters or	collating ele-
		       ments in	the range are placed in	the array in ascending
		       collation sequence.

       [:class:]       Represents  all	characters  belonging  to  the defined
		       character 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.

		       Note:  /usr/bin/tr supports character class expressions
		       only in singlebyte  locales.  Use  /usr/xpg4/bin/tr  to
		       support these expressions in any	locale.

		       When  both  the -d and -s options are specified,	any of
		       the character class names are accepted in string2. Oth-
		       erwise,	only  character	class names lower or upper are
		       valid in	string2	and then  only	if  the	 corresponding
		       character class upper and lower,	respectively, is spec-
		       ified in	the same relative position in string1.	Such a
		       specification is	interpreted as a request for case con-
		       version.	 When  [:lower:]  appears   in	 string1   and
		       [:upper:]  appears  in  string2,	the arrays contain the
		       characters from the toupper  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  current  locale.  The	 first
		       character  from	each  mapping pair is in the array for
		       string1 and the 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 belong-
		       ing to the same equivalence class as equiv, as  defined
		       by  the	current	setting	of the LC_COLLATE locale cate-
		       gory. 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 charac-
		       ters to one,  it	 is  only  valid  when	it  occurs  in
		       string2.	 If n is omitted or is 0, it is	interpreted as
		       large enough to extend the  string2-based  sequence  to
		       the  length  of	the string1-based sequence. If n has a
		       leading 0, it is	interpreted as an octal	value.	Other-
		       wise, it	is interpreted as a decimal value.

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	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWcsu			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Not enabled		   |
       +-----------------------------+-----------------------------+

   /usr/xpg4/bin/tr
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWxcu4			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

   /usr/xpg6/bin/tr
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWxcu6			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       ed(1),	 sed(1),    sh(1),    tolower(3C),    toupper(3C),   ascii(5),
       attributes(5), environ(5), largefile(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'.

SunOS 5.10			  13 Aug 2003				 tr(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | EXAMPLES | ENVIRONMENT VARIABLES | EXIT STATUS | ATTRIBUTES | SEE ALSO | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=tr&sektion=1&manpath=SunOS+5.10>

home | help