[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3 join: Join lines on a common field

join writes to standard output a line for each pair of input lines that have identical join fields. Synopsis:

 
join [option]... file1 file2

Either file1 or file2 (but not both) can be `-', meaning standard input. file1 and file2 should be already sorted in increasing textual order on the join fields, using the collating sequence specified by the LC_COLLATE locale. Unless the `-t' option is given, the input should be sorted ignoring blanks at the start of the join field, as in sort -b. If the `--ignore-case' option is given, lines should be sorted without regard to the case of characters in the join field, as in sort -f.

The defaults are: the join field is the first field in each line; fields in the input are separated by one or more blanks, with leading blanks on the line ignored; fields in the output are separated by a space; each output line consists of the join field, the remaining fields from file1, then the remaining fields from file2.

The program accepts the following options. Also see 2. Common options.

`-a file-number'
Print a line for each unpairable line in file file-number (either `1' or `2'), in addition to the normal output.

`-e string'
Replace those output fields that are missing in the input with string.

`-i'
`--ignore-case'
Ignore differences in case when comparing keys. With this option, the lines of the input files must be ordered in the same way. Use `sort -f' to produce this ordering.

`-1 field'
`-j1 field'
Join on field field (a positive integer) of file 1.

`-2 field'
`-j2 field'
Join on field field (a positive integer) of file 2.

`-j field'
Equivalent to `-1 field -2 field'.

`-o field-list...'
Construct each output line according to the format in field-list. Each element in field-list is either the single character `0' or has the form m.n where the file number, m, is `1' or `2' and n is a positive field number.

A field specification of `0' denotes the join field. In most cases, the functionality of the `0' field spec may be reproduced using the explicit m.n that corresponds to the join field. However, when printing unpairable lines (using either of the `-a' or `-v' options), there is no way to specify the join field using m.n in field-list if there are unpairable lines in both files. To give join that functionality, POSIX invented the `0' field specification notation.

The elements in field-list are separated by commas or blanks. Multiple field-list arguments can be given after a single `-o' option; the values of all lists given with `-o' are concatenated together. All output lines -- including those printed because of any -a or -v option -- are subject to the specified field-list.

`-t char'
Use character char as the input and output field separator.

`-v file-number'
Print a line for each unpairable line in file file-number (either `1' or `2'), instead of the normal output.

In addition, when GNU join is invoked with exactly one argument, options `--help' and `--version' are recognized. See section 2. Common options.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Paul Visscher on December, 28 2000 using texi2html