join
2つのファイルの行を結合する(1)
構文
join [オプション] FILE1 FILE2
オプション
-a FILENUM | 通常出力に加え、FILENUM(1ならFILE1、2ならFILE2)のマッチしなかった行もあわせて出力する |
-e EMPTY | 入力フィールドがなかった場合に文字列EMPTYで置き換える |
-i, --ignore-case | フィールドを比較するときに大文字と小文字を区別しない |
-j FIELD | 「-1 FIELD -2 FIELD」と同じ |
-o FORMAT | 出力フォーマットをFORMATで指定する(FORMAT内の要素はファイル番号、ピリオド、フィールド番号から構成され、それぞれの要素はコンマもしくは空白で区切る) |
-t CHAR | 入力および出力フィールドの区切り文字としてCHARを使う |
-v FILENUM | 通常出力の代わりにFILENUM(1ならFILE1、2ならFILE2)のマッチしなかった行を出力する |
-1 FIELD | FILE1のフィールドFIELD(正の整数)に基づいて結合する |
-2 FIELD | FILE2のフィールドFIELD(正の整数)に基づいて結合する |
--check-order | 入力フィールドが正しくソートされているか確認する |
--nocheck-order | 入力フィールドが正しくソートされているか確認しない |
説明
2つのファイルを読み込んで、それぞれの指定したフィールドが共通する行を結合する。フィールドとは、1つ以上の空白で区切られた文字列を示す。どちらのファイルもあらかじめ、joinで指定するフィールドでソートしておく必要がある。
使用例
sample1ファイルとsample2ファイルの第2フィールドを比較し、マッチする行を結合して出力する。
$ join -j 2 sample1 sample2
関連事項
paste