Blame


1 cfa37a7b 2004-04-10 devnull .TH JOIN 1
2 cfa37a7b 2004-04-10 devnull .CT 1 files
3 cfa37a7b 2004-04-10 devnull .SH NAME
4 cfa37a7b 2004-04-10 devnull join \- relational database operator
5 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
6 cfa37a7b 2004-04-10 devnull .B join
7 cfa37a7b 2004-04-10 devnull [
8 cfa37a7b 2004-04-10 devnull .I options
9 cfa37a7b 2004-04-10 devnull ]
10 cfa37a7b 2004-04-10 devnull .I file1 file2
11 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
12 cfa37a7b 2004-04-10 devnull .I Join
13 cfa37a7b 2004-04-10 devnull forms, on the standard output,
14 cfa37a7b 2004-04-10 devnull a join
15 cfa37a7b 2004-04-10 devnull of the two relations specified by the lines of
16 cfa37a7b 2004-04-10 devnull .I file1
17 cfa37a7b 2004-04-10 devnull and
18 cfa37a7b 2004-04-10 devnull .IR file2 .
19 cfa37a7b 2004-04-10 devnull If one of the file names is
20 cfa37a7b 2004-04-10 devnull .LR - ,
21 cfa37a7b 2004-04-10 devnull the standard input is used.
22 cfa37a7b 2004-04-10 devnull .PP
23 cfa37a7b 2004-04-10 devnull .I File1
24 cfa37a7b 2004-04-10 devnull and
25 cfa37a7b 2004-04-10 devnull .I file2
26 cfa37a7b 2004-04-10 devnull must be sorted in increasing
27 cfa37a7b 2004-04-10 devnull .SM ASCII
28 cfa37a7b 2004-04-10 devnull collating
29 cfa37a7b 2004-04-10 devnull sequence on the fields
30 cfa37a7b 2004-04-10 devnull on which they are to be joined,
31 cfa37a7b 2004-04-10 devnull normally the first in each line.
32 cfa37a7b 2004-04-10 devnull .PP
33 cfa37a7b 2004-04-10 devnull There is one line in the output
34 cfa37a7b 2004-04-10 devnull for each pair of lines in
35 cfa37a7b 2004-04-10 devnull .I file1
36 cfa37a7b 2004-04-10 devnull and
37 cfa37a7b 2004-04-10 devnull .I file2
38 cfa37a7b 2004-04-10 devnull that have identical join fields.
39 cfa37a7b 2004-04-10 devnull The output line normally consists of the common field,
40 cfa37a7b 2004-04-10 devnull then the rest of the line from
41 cfa37a7b 2004-04-10 devnull .IR file1 ,
42 cfa37a7b 2004-04-10 devnull then the rest of the line from
43 cfa37a7b 2004-04-10 devnull .IR file2 .
44 cfa37a7b 2004-04-10 devnull .PP
45 cfa37a7b 2004-04-10 devnull Input fields are normally separated spaces or tabs;
46 cfa37a7b 2004-04-10 devnull output fields by space.
47 cfa37a7b 2004-04-10 devnull In this case, multiple separators count as one, and
48 cfa37a7b 2004-04-10 devnull leading separators are discarded.
49 cfa37a7b 2004-04-10 devnull .PP
50 cfa37a7b 2004-04-10 devnull The following options are recognized, with POSIX syntax.
51 cfa37a7b 2004-04-10 devnull .TP
52 cfa37a7b 2004-04-10 devnull .BI -a " n
53 cfa37a7b 2004-04-10 devnull In addition to the normal output,
54 cfa37a7b 2004-04-10 devnull produce a line for each unpairable line in file
55 cfa37a7b 2004-04-10 devnull .IR n ,
56 cfa37a7b 2004-04-10 devnull where
57 cfa37a7b 2004-04-10 devnull .I n
58 cfa37a7b 2004-04-10 devnull is 1 or 2.
59 cfa37a7b 2004-04-10 devnull .TP
60 cfa37a7b 2004-04-10 devnull .BI -v " n
61 cfa37a7b 2004-04-10 devnull Like
62 cfa37a7b 2004-04-10 devnull .BR -a ,
63 cfa37a7b 2004-04-10 devnull omitting output for paired lines.
64 cfa37a7b 2004-04-10 devnull .TP
65 cfa37a7b 2004-04-10 devnull .BI -e " s
66 cfa37a7b 2004-04-10 devnull Replace empty output fields by string
67 cfa37a7b 2004-04-10 devnull .IR s .
68 cfa37a7b 2004-04-10 devnull .TP
69 cfa37a7b 2004-04-10 devnull .BI -1 " m
70 cfa37a7b 2004-04-10 devnull .br
71 cfa37a7b 2004-04-10 devnull .ns
72 cfa37a7b 2004-04-10 devnull .TP
73 cfa37a7b 2004-04-10 devnull .BI -2 " m
74 cfa37a7b 2004-04-10 devnull Join on the
75 cfa37a7b 2004-04-10 devnull .IR m th
76 cfa37a7b 2004-04-10 devnull field of
77 cfa37a7b 2004-04-10 devnull .I file1
78 cfa37a7b 2004-04-10 devnull or
79 cfa37a7b 2004-04-10 devnull .IR file2 .
80 cfa37a7b 2004-04-10 devnull .TP
81 cfa37a7b 2004-04-10 devnull .BI -j "n m"
82 cfa37a7b 2004-04-10 devnull Archaic equivalent for
83 cfa37a7b 2004-04-10 devnull .BI - n " m"\f1.
84 cfa37a7b 2004-04-10 devnull .TP
85 cfa37a7b 2004-04-10 devnull .BI -o fields
86 cfa37a7b 2004-04-10 devnull Each output line comprises the designated fields.
87 cfa37a7b 2004-04-10 devnull The comma-separated field designators are either
88 cfa37a7b 2004-04-10 devnull .BR 0 ,
89 cfa37a7b 2004-04-10 devnull meaning the join field, or have the form
90 cfa37a7b 2004-04-10 devnull .IR n . m ,
91 cfa37a7b 2004-04-10 devnull where
92 cfa37a7b 2004-04-10 devnull .I n
93 cfa37a7b 2004-04-10 devnull is a file number and
94 cfa37a7b 2004-04-10 devnull .I m
95 cfa37a7b 2004-04-10 devnull is a field number.
96 cfa37a7b 2004-04-10 devnull Archaic usage allows separate arguments for field designators.
97 cfa37a7b 2004-04-10 devnull .PP
98 cfa37a7b 2004-04-10 devnull .TP
99 cfa37a7b 2004-04-10 devnull .BI -t c
100 cfa37a7b 2004-04-10 devnull Use character
101 cfa37a7b 2004-04-10 devnull .I c
102 cfa37a7b 2004-04-10 devnull as the only separator (tab character) on input and output.
103 cfa37a7b 2004-04-10 devnull Every appearance of
104 cfa37a7b 2004-04-10 devnull .I c
105 cfa37a7b 2004-04-10 devnull in a line is significant.
106 cfa37a7b 2004-04-10 devnull .SH EXAMPLES
107 cfa37a7b 2004-04-10 devnull .TP
108 cfa37a7b 2004-04-10 devnull .L
109 058b0118 2005-01-03 devnull sort /etc/passwd | join -t: -1 1 -a 1 -e "" - bdays
110 cfa37a7b 2004-04-10 devnull Add birthdays to the
111 058b0118 2005-01-03 devnull .B /etc/passwd
112 cfa37a7b 2004-04-10 devnull file, leaving unknown
113 cfa37a7b 2004-04-10 devnull birthdays empty.
114 cfa37a7b 2004-04-10 devnull The layout of
115 cfa37a7b 2004-04-10 devnull .B /adm/users
116 cfa37a7b 2004-04-10 devnull is given in
117 d32deab1 2020-08-16 rsc .MR passwd (5) ;
118 cfa37a7b 2004-04-10 devnull .B bdays
119 cfa37a7b 2004-04-10 devnull contains sorted lines like
120 cfa37a7b 2004-04-10 devnull .LR "ken:Feb\ 4,\ 1953" .
121 cfa37a7b 2004-04-10 devnull .TP
122 cfa37a7b 2004-04-10 devnull .L
123 058b0118 2005-01-03 devnull tr : ' ' </etc/passwd | sort -k 3 3 >temp
124 cfa37a7b 2004-04-10 devnull .br
125 cfa37a7b 2004-04-10 devnull .ns
126 cfa37a7b 2004-04-10 devnull .TP
127 cfa37a7b 2004-04-10 devnull .L
128 cfa37a7b 2004-04-10 devnull join -1 3 -2 3 -o 1.1,2.1 temp temp | awk '$1 < $2'
129 cfa37a7b 2004-04-10 devnull Print all pairs of users with identical userids.
130 cfa37a7b 2004-04-10 devnull .SH SOURCE
131 c3674de4 2005-01-11 devnull .B \*9/src/cmd/join.c
132 cfa37a7b 2004-04-10 devnull .SH "SEE ALSO"
133 cfa37a7b 2004-04-10 devnull .IR sort (1),
134 cfa37a7b 2004-04-10 devnull .IR comm (1),
135 d32deab1 2020-08-16 rsc .MR awk (1)
136 cfa37a7b 2004-04-10 devnull .SH BUGS
137 cfa37a7b 2004-04-10 devnull With default field separation,
138 cfa37a7b 2004-04-10 devnull the collating sequence is that of
139 cfa37a7b 2004-04-10 devnull .BI "sort -b"
140 cfa37a7b 2004-04-10 devnull .BI -k y , y\f1;
141 cfa37a7b 2004-04-10 devnull with
142 cfa37a7b 2004-04-10 devnull .BR -t ,
143 cfa37a7b 2004-04-10 devnull the sequence is that of
144 cfa37a7b 2004-04-10 devnull .BI "sort -t" x
145 cfa37a7b 2004-04-10 devnull .BI -k y , y\f1.
146 c8b6342d 2005-01-13 devnull .PP
147 cfa37a7b 2004-04-10 devnull One of the files must be randomly accessible.