JOIN(1) BSD JOIN(1)
NAME
join - relational database operator
SYNOPSIS
join [ options ] file1 file2
DESCRIPTION
The join command forms, on the standard output, a join of the two
relations specified by the lines of file1 and file2. If you specify a
dash (`-') for file1, join uses the standard input.
You must sort file1 and file2 in increasing ASCII collating sequence on
the fields on which they are to be joined (normally the first in each
line).
The output has one line for each pair of lines in file1 and file2 that
have identical join fields. The output line normally consists of the
common field, then the rest of the line from file1, and finally, the rest
of the line from file2.
Fields are normally separated by a blank, tab or newline. join usually
counts multiple separators as one, and discards leading separators.
OPTIONS
-an In addition to the normal output, produce a line for each
unpairable line in file n, where n is 1 or 2.
-e s Replace empty output fields by string s.
-jn m Join on the mth field of file n. If n is missing, use the mth
field in each file.
-o list Each output line comprises the fields specified in list, each
element of which has the form n.m, where n is a file number and
m is a field number.
-tc Use character c as a separator (tab character). Every
appearance of c in a line is significant.
EXAMPLE
To join the fourth field of each of file1 and file2, type the following:
join -j1 4 -j2 4 file1 file2
BUGS
With default-field separation, the collating sequence is that of sort -b;
with -t, the sequence is that of a plain sort.
The conventions of join, sort, comm, uniq, look and awk(1) are wildly
incongruous.
SEE ALSO
sort(1), comm(1), awk(1), look(1)