JOIN(1) — NEWS-OS Programmer’s Manual
名称
join − リレーショナルデータベース操作プログラム
形式
join [ options ] file1 file2
解説
join は、 file1 と file2 によって指定された 2 つのリレーションを結合し、 結果を標準出力に出力します。 file1 が − である場合には、標準入力が使用されます。
file1 と file2 は、結合されるフィールド(通常は、各行の先頭のフィールド)において、 文字コードの昇順にソートされていなければなりません。
同じ結合フィールドを持つ file1 と file2 の行の組みは、出力では 1 行で表示されます。 出力行は、通常、共通のフィールド、 file1 の行の残りの部分、 file2 の行の残りの部分から構成されます。
フィールドは、通常、ブランク、タブ、改行で区切られます。 この場合、複数の区切り文字は 1 つとしてカウントされ、 先頭の区切り文字は捨てられます。
オプション
−an 通常の出力に加えて、 ファイル n (ここで、 n は 1 または 2) にある、組みにすることのできなかった行を 出力します。
−e s -o で選択されたリストの中で、空の出力フィールドを文字列 s で置き換えます。
−jn m ファイル n の m 番目のフィールドを使用して結合を行います。 n が指定されない場合には、各ファイルの m 番目のフィールドを使用します。
−o list 各出力行は、 list で指定されたフィールドで構成されます。 list の各要素は n.m の形になります。 ここで、 n はファイル番号で、 m はフィールド番号です。
−tc 区切り文字(タブ文字)として文字 c を使用します。 行に含まれる c は、すべてこの意味を持ちます。
例
使用例です。ファイル phone:
!Namephone Number
Hikari03-4123-1234
Kodama06-123-1234
Nozomi
Tubasa0123-45-6789
ファイル fax:
!NameFax Number
Hikari03-4123-1235
Kodama
Nozomi06-432-1098
Tubasa0123-45-6780
(ここで、大きな空白は、1つのタブ文字です)
コマンド:
% join -t"<tab>" -e "(Unknown)" -o 1.1 1.2 2.2 phone fax
は以下のような結果になります:
!Name phone Number Fax Number
Hikari 03-4123-1234 03-4123-1235
Kodama 06-123-1234 (Unknown)
Nozomi (Unknown) 06-432-1098
Tubasa 0123-45-6789 0123-45-6780
関連事項
バグ
デフォルトのフィールド区切りの場合、照合順序は sort −b の順になります。 −t オプションを用いると、照合順序は単純ソートの順になります。
join、 sort、 comm、 uniq、 look、 awk の規約は、不統一です。
NEWS-OSRelease 4.2.1R