gnu.org


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.

Read the original on gnu.org ↗