join
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.