join
[
options
]
file1
file2
Join the common lines of sorted file1
and sorted file2
. Read standard input if file1
is -
. The output contains the common field and the remainder of each line from file1
and file2
. In the options below, n
can be 1 or 2, referring to file1
or file2
.
-a
[n
]
List unpairable lines in file n
(or both if n
is omitted). Solaris does not allow omission of n
.
-e
s
Replace any empty output field with the string s
.
-j
n m
Join on the m
th field of file n
(or both files if n
is omitted).
-o
n.m
Each output line contains fields specified by file number n
and field number m
. The common field is suppressed unless requested.
-t
c
Use character c
as field separator for input and output.
-v
n
Print only the unpairable lines in file n
. With both -v 1
and -v 2
, all unpairable lines are printed. Solaris only.
-1
m
Join on field m
of file 1. Fields start with 1. Solaris only.
-2
m
Join on field m
of file 2. Fields start with 1. Solaris only.
Assuming the following input files:
$ cat score
olga 81 91
rene 82 92
zack 83 93
$ cat grade
olga B A
rene B A
List scores followed by grades, including unmatched lines:
$ join -a1 score grade
olga 81 91 B A
rene 82 92 B A
zack 83 93
Pair each score with its grade:
$ join -o 1.1 1.2 2.2 1.3 2.3 score grade
olga 81 B 91 A
rene 82 B 92 A