8.3 join: Join lines on a common field

join writes to standard output a line for each pair of input lines that have identical join fields. Synopsis:

join [option]… file1 file2

Either file1 or file2 (but not both) can be ‘-’, meaning standard input. file1 and file2 should be sorted on the join fields.

$ cat file1
a 1
b 2
e 5

$ cat file2
a X
e Y
f Z

$ join file1 file2
a 1 X
e 5 Y

join’s default behavior (when no options are given):

  • 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.
General options in join    Options which affect general program behavior.
Sorting files for join    Using sort before join.
Working with fields    Joining on different fields.
Paired and unpaired lines    Controlling join’s field matching.
Header lines    Working with header lines in files.
Set operations    Union, Intersection and Difference of files.