Move primary cache code to libminixfs.
[minix.git] / man / man1 / tr.1
blob2b66de49bdbd6af2387b10c78f43f598e0d94d78
1 .TH TR 1
2 .SH NAME
3 tr \- translate character codes
4 .SH SYNOPSIS
5 \fBtr\fR [\fB\-cds\fR]\fR [\fIstring1\fR] [\fIstring2\fR]\fR
6 .br
7 .de FL
8 .TP
9 \\fB\\$1\\fR
10 \\$2
12 .de EX
13 .TP 20
14 \\fB\\$1\\fR
15 # \\$2
17 .SH OPTIONS
18 .TP 5
19 .B \-c
20 # Complement the set of characters in \fIstring1\fR
21 .TP 5
22 .B \-d
23 # Delete all characters specified in \fIstring1\fR
24 .TP 5
25 .B \-s
26 # Squeeze all runs of characters in \fIstring1\fR to one character
27 .SH EXAMPLES
28 .TP 20
29 .B tr \(fmA\-Z\(fm \(fma\-z\(fm <x >y
30 # Convert upper case to lower case
31 .TP 20
32 .B tr \-d \(fm0123456789\(fm <f1 >f2
33 # Delete all digits from \fIf1\fR
34 .SH DESCRIPTION
35 .PP
36 .I Tr
37 performs simple character translation.
38 When no flag is specified, each character in 
39 .I string1
40 is mapped onto the corresponding character in
41 .I string2 .
42 .PP
43 There are two types of
44 .I tr
45 out there, one that requires [ and ] for character classes, and one that does
46 not.  Here is what the example above would look like for a
47 .I tr
48 that needs the brackets:
49 .PP
50 .RS
51 .B "tr \(fm[A\-Z]\(fm \(fm[a\-z]\(fm <x >y"
52 .RE
53 .PP
54 Use [ and ] if you want to be portable, because a
55 .I tr
56 that doesn't need them will still accept the syntax and mindlessly
57 translate [ into [ and ] into ].
58 .PP
59 MINIX tr supports the following character classes: alnum, alpha, digit, lower,
60 upper and xdigit. If any of these keywords is encountered between backets and 
61 colons, it is replaced by respectively alphanumeric characters, alphabetic
62 characters, decimal digits, lowercase letters, uppercase letters and 
63 hexadecimal digits. The following are equivalent with the given examples:
64 .TP 20
65 .B tr \(fm[:upper:]\(fm \(fm[:lower:]\(fm <x >y
66 # Convert upper case to lower case
67 .TP 20
68 .B tr \-d \(fm[:digit:]\(fm <f1 >f2
69 # Delete all digits from \fIf1\fR