JOIN(1L)

NAME
join - join lines of two files on a common field

SYNOPSIS
join [-a 1|2] [-v 1|2] [-e empty-string] [-o field-list...] [-t char] [-j[1|2] field] [-1 field] [-2 field] [--help] [--version] file1 file2

DESCRIPTION
This manual page documents the GNU version of join. join prints to the standard output a line for each pair of input lines, one each from file1 and file2, that have identical join fields. Either filename (but not both) can be `-', meaning the standard input. file1 and file2 should be already sorted in increasing order (not numerically) on the join fields; unless the -t option is given, they should be sorted ignoring blanks at the start of the line, as sort does when given the -b option.

The defaults are: the join field is the first field in each line; fields in the input are separated by one or more blanks, with leading blanks on the line ignored; fields in the output are separated by a space; each output line consists of the join field, the remaining fields from file1, then the remaining fields from file2.

  OPTIONS

-a file-number
    Print a line for each unpairable line in file file-number (either 1 or 2), in addition to the normal output.

-e string
    Replace empty output fields (those that are missing in the input) with string.

-1, -j1 field
    Join on field field (a positive integer) of file 1.

-2, -j2 field
    Join on field field (a positive integer) of file 2.

-j field
    Equivalent to -1 field -2 field.

-o field-list...
    Construct each output line according to the format in field-list. Each element in field-list consists of a file number (either 1 or 2), a period, and a field number (a positive integer). The elements in the list are separated by commas or blanks. Multiple field-list arguments can be given after a single -o option; the values of all lists given with -o are concatenated together.

-t char
    Use character char as the input and output field separator.

-v file-number
    Print a line for each unpairable line in file file-number (either 1 or 2), instead of the normal output.

--help
    Print a usage message and exit with a non-zero status.

--version
    Print version information on standard error then exit.