join—Join lines of two files on a common field
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
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 following: 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.
|–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 on standard output and exit successfully.|
|–version||Print version information on standard output, then exit successfully.|