スポンサーリンク

JOIN(1) FreeBSD 一般コマンドマニュアル JOIN(1)

名称

join − リレーショナルデータベースの操作

書式

join [

             −a file_number | −v file_number] [−e string] [−o list] [−t char][−1 field] [−2 field] file1 file2

解説

join ユーティリティは、指定されたファイルに対し ‘‘equality join’’ と呼ば れる、各ファイルの同一の部分を結合する操作を施して結果を標準出力に出力し ます。

比較は、それぞれのファイルの ‘‘join field’’ と呼ばれるフィールドで行ない ます。デフォルトでは、各行の最初のフィールドが使用されます。 file1file2 の中で、 ‘‘join field’’ が一致した行が組みとなり、1 行で出力されま す。 join field と、 file1 のうちの残りのフィールド、その後、 file2 のう ちの残りのフィールドが 1 行になって出力されます。

フィールドの区切は、デフォルトではタブか空白文字です。複数のタブや空白が 繋っていても、1 つの区切とみなされ、読み込み時にこれらは無視されます。出 力時の各フィールドの区切は、デフォルトでは空白 1 文字です。

ファイルとフィールドの番号に関し、多くのオプションがあります。これらの番 号は常に、1 から始まります。すなわち、コマンドラインの最初のファイルは ファイル番号 1 番であり、各行の最初のフィールドは、フィールド番号 1 番と なります。

       −a file_number

デフォルトの出力に加えて、 file_number で指定したファイルに関し て、同一フィールドがなかった行を表示します。

−e string
出力時に、空のフィールドがあれば string で指定した文字列に置き換 えます。

−o list
join
の処理して出力すべき行に関し、デフォルトの順序でなく、 list で指定した順序で各ファイルの各フィールドを出力するようにします。 list の各要素は、 ‘file_number.field’ または ‘0’ (ゼロ) で表わ し、要素間は、コンマ (‘,’) か空白で区切ります (空白で区切る場合 は、シェルが要素を別々のパラメータに分解しないようクォーティング するか、複数の −o オプションを使用します)。

−t char
入力および出力に使用するフィールドの区切として char で指定した文 字を使用するようにします。 1行の中で出現したすべての char が有効 です。

−v file_number
file_number
で指定したファイル番号のファイルに関して、 join 処理 で同一フィールドが見つからなかった行だけを表示するようにします。 −v 1−v 2 を同時に指定してもかまいません。

−1 field
ファイル 1 の ‘‘join field’’ を field で指定した番号のフィールド とします。

−2 field
ファイル 2 の ‘‘join field’’ を field で指定した番号のフィールド とします。

デフォルトのフィールド区切り文字が使われる場合、結合の対象となるファイル は、結合すべきフィールドをキーとして sort(1)−b オプションを付けたもの でソートされていなければなりません。そうしないと、 join はマッチする フィールドを一部しか表示しないことがあります。 −t オプションでフィールド 区切り文字が指定されている場合、 −b オプション無しの sort(1) でソートされ ていなければなりません。

file1 または file2 のうちの片方が ‘‘-’’ であった場合には、標準入力が使わ れます。

診断

ユーティリティ join は、成功すると 0 で、エラーがあった場合は >0 で終了し ます。

互換性

さらに、古いバージョンの join との互換のため、次のオプションも使用できま す。

       −a

デフォルトの出力に加え、file1 と file2 の各々で、同一フィールドが ない行を表示します。

−j1 field
ファイル1の ‘‘join field’’ を field で指定した番号のフィールドと します。

−j2 field
ファイル2の ‘‘join field’’ を field で指定した番号のフィールドと します。

−j field
file1 と file2 の ‘‘join field’’ を field で指定した番号のフィー ルドとします。

−o list ...
歴史的な join の実装では −o オプションに複数の引数を許可していま した。これらの引数は、現在の −o オプションで説明したものと同じ ‘‘file_number.field_number’’ という形式でした。しかし、この方法で は ‘1.2’ と名付けられたファイルが存在すると、明らかに困難を生じま す。

これらのオプションは、修正をしたくないような非常に古いシェルスクリプトの ためだけに用意されています。これらのオプションは、使うべきではありませ ん。

規格

join コマンドは IEEE Std 1003.1-2001 (‘‘POSIX.1’’) 互換です。

関連項目

awk(1), comm(1), paste(1), sort(1), uniq(1)

FreeBSD 10.0 July 5, 2004 FreeBSD 10.0

スポンサーリンク