JOIN(1)

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] file1 file2
join {--help,--version}

DESCRIPTION
This documentation is no longer being maintained and may be inaccurate or incomplete. The Texinfo documentation is now the authoritative source.

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.

In addition, when GNU join is invoked with exactly one argument, the following options are recognized:

--help
    Print a usage message on standard output and exit successfully.

--version
    Print version information on standard output then exit successfully.