join

v0.0.28
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 blanks.

When FILE1 or FILE2 (not both) is -, read standard input.

Options

-a <FILENUM>

also print unpairable lines from file FILENUM, where
FILENUM is 1 or 2, corresponding to FILE1 or FILE2

-v <FILENUM>

like -a FILENUM, but suppress joined output lines

-e <EMPTY>

replace missing input fields with EMPTY

--ignore-case, -i

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

-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

--header

treat the first line in each file as field headers, print them without trying to pair them

--zero-terminated, -z

line delimiter is NUL, not newline

Examples

Join two files on the first (default) field:

join {{path/to/file1}} {{path/to/file2}}

Join two files using a comma (instead of a space) as the field separator:

join -t {{','}} {{path/to/file1}} {{path/to/file2}}

Join field3 of file1 with field1 of file2:

join -1 {{3}} -2 {{1}} {{path/to/file1}} {{path/to/file2}}

Produce a line for each unpairable line for file1:

join -a {{1}} {{path/to/file1}} {{path/to/file2}}

Join a file from stdin:

cat {{path/to/file1}} | join - {{path/to/file2}}

The examples are provided by the tldr-pages project under the CC BY 4.0 License.

Please note that, as uutils is a work in progress, some examples might fail.