join コマンドは、2つのファイルを指定した共通のフィールドで結合するためのユーティリティです。このコマンドは IEEE Std 1003.1-2001(POSIX.1)に準拠しており、複数のファイルを関連付けて、共通のキーを持つ行を結合するのに使用されます。

基本的な使い方

編集
join [オプション] ファイル1 ファイル2

主なオプション

編集
主なオプション
オプション 説明
-a FILE_NUMBER, --auto-output=FILE_NUMBER 出力に指定したファイルを含める(FILE_NUMBERは 1 または 2)
-i, --ignore-case 大文字と小文字を区別せずに比較
-j, --join=FIELD 指定したフィールドで結合(デフォルトは1)
-o, --output=FORMAT 出力形式を指定
-t, --separator=CHAR フィールドを区切る区切り文字を指定(デフォルトは空白またはタブ)
-v, --unjoin 一致しない行のみを出力
--help ヘルプメッセージを表示

2つのファイルを共通のフィールドで結合

編集
join file1.txt file2.txt

file1.txtfile2.txt の共通のフィールド(デフォルトは1列目)を基に行を結合して表示。

大文字と小文字を区別せずに結合

編集
join -i file1.txt file2.txt

file1.txtfile2.txt の内容を、大文字小文字を区別せずに結合して表示。

特定のフィールドで結合

編集
join -j 2 file1.txt file2.txt

file1.txtfile2.txt の2番目のフィールドを基に行を結合して表示。

一致しない行だけを表示

編集
join -v 1 file1.txt file2.txt

file1.txt に存在し、file2.txt に存在しない行のみを表示。

FreeBSD 版との違い

編集

FreeBSD でも join コマンドが提供されており、POSIX 準拠の動作をしています。基本的なオプションや動作に関しては、Linux や他の UNIX 系システムと大きな違いはありません。

詳しくは、それぞれの環境で man join を確認してください。