join [OPTION]... FILE1 FILE2
For each pair of input lines with identical join fields, write a line
to standard output. The default join field is the first, delimited by
whitespace. When FILE1 or FILE2 (not both) is -, read standard input.
-a FILENUM
print unpairable lines coming from file FILENUM, where FILENUM
is 1 or 2, corresponding to FILE1 or FILE2
-e EMPTY
replace missing input fields with EMPTY
-i, --ignore-case
ignore differences in case when comparing fields
-j FIELD
equivalent to ‘-1 FIELD -2 FIELD’
-o FORMAT
obey FORMAT while constructing output line
-t CHAR
use CHAR as input and output field separator
-v FILENUM
like -a FILENUM, but suppress joined output lines
-1 FIELD
join on this FIELD of file 1
-2 FIELD
join on this FIELD of file 2
--check-order
check that the input is correctly sorted, even if all input
lines are pairable
--nocheck-order
do not check that the input is correctly sorted
--help display this help and exit
--version
output version information and exit
Unless -t CHAR is given, leading blanks separate fields and are
ignored, else fields are separated by CHAR. Any FIELD is a field num-
ber counted from 1. FORMAT is one or more comma or blank separated
specifications, each being ‘FILENUM.FIELD’ or ‘0’. Default FORMAT out-
puts the join field, the remaining fields from FILE1, the remaining
fields from FILE2, all separated by CHAR.
Important: FILE1 and FILE2 must be sorted on the join fields. E.g.,
use ‘sort -k 1b,1’ if ‘join’ has no options. Note, comparisons honor
the rules specified by ‘LC_COLLATE’. If the input is not sorted and
some lines cannot be joined, a warning message will be given.