Files
sbase/join.1
T

108 lines
2.1 KiB
Groff
Raw Normal View History

2015-10-08 17:15:08 +02:00
.Dd 2015-10-08
2015-04-20 11:23:20 +01:00
.Dt JOIN 1
.Os sbase
.Sh NAME
.Nm join
.Nd relational database operator
.Sh SYNOPSIS
.Nm
.Op Fl 1 Ar field
.Op Fl 2 Ar field
.Op Fl o Ar list
.Op Fl e Ar string
.Op Fl a Ar fileno | Fl v Ar fileno
.Op Fl t Ar delim
.Ar file1 file2
.Sh DESCRIPTION
.Nm
lines from
.Ar file1
and
.Ar file2
2020-03-01 14:37:31 -08:00
on a matching field.
If one of the input files is '-', standard input is read for that file.
2015-04-20 11:23:20 +01:00
.Pp
Files are read sequentially and are assumed to be sorted on the join
field.
.Nm
does not check the order of input, and joining two unsorted files will
produce unexpected output.
.Pp
By default, input lines are matched on the first blank-separated
field; output lines are space-separated and consist of the join field
followed by the remaining fields from
2020-03-01 14:37:31 -08:00
.Ar file1 ,
2015-04-20 11:23:20 +01:00
then the remaining fields from
2020-03-01 14:37:31 -08:00
.Ar file2 .
2015-04-20 11:23:20 +01:00
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl 1 Ar field
Join on the
2015-05-01 13:41:14 -04:00
.Ar field Ns th
2015-04-20 11:23:20 +01:00
field of file 1.
.It Fl 2 Ar field
Join on the
2015-05-01 13:41:14 -04:00
.Ar field Ns th
2015-04-20 11:23:20 +01:00
field of file 2.
.It Fl a Ar fileno
Print unpairable lines from file
.Ar fileno
in addition to normal output.
.It Fl e Ar string
When used with
2020-03-01 14:37:31 -08:00
.Fl o ,
2015-04-20 11:23:20 +01:00
replace empty fields in the output list with
2020-03-01 14:37:31 -08:00
.Ar string .
2015-04-20 11:23:20 +01:00
.It Fl o Ar list
Format output according to the string
2020-03-01 14:37:31 -08:00
.Ar list .
2015-04-20 11:23:20 +01:00
Each element of
.Ar list
may be either
.Ar fileno.field
or 0 (representing the join field).
Elements in
.Ar list
2020-03-01 14:37:31 -08:00
may be separated by blanks or commas.
For example,
2015-04-20 11:23:20 +01:00
.Bd -literal -offset indent
join -o "0 2.1 1.3"
.Ed
.Pp
would print the join field, the first field of
2020-03-01 14:37:31 -08:00
.Ar file2 ,
2015-04-20 11:23:20 +01:00
then the third field of
2020-03-01 14:37:31 -08:00
.Ar file1 .
2015-04-20 11:23:20 +01:00
.Pp
Only paired lines are formatted with the
.Fl o
2020-03-01 14:37:31 -08:00
option.
Unpairable lines (selected with
2015-04-20 11:23:20 +01:00
.Fl a
or
2020-03-01 14:37:31 -08:00
.Fl v )
2015-04-20 11:23:20 +01:00
are printed raw.
.It Fl t Ar delim
Use the arbitrary string
.Ar delim
as field delimiter for both input and output.
.It Fl v Ar fileno
Print unpairable lines from file
.Ar fileno
instead of normal output.
.El
.Sh STANDARDS
The
.Nm
utility is compliant with the
.St -p1003.1-2013
specification with the following exeption:
.Bl -bullet -offset indent
.It
Unpairable lines ignore formatting specified with
2020-03-01 14:37:31 -08:00
.Fl o .
2015-04-20 11:23:20 +01:00
.El
.Pp
The possibility of specifying multibyte delimiters of arbitrary
length is an extension to the specification.