No.048テキスト処理
join
ジョイン・共通キー結合
二つの入力を共通フィールドで突き合わせて結合します。前提として入力が結合キーで整列していることが重要です。
答えよく使う形
$ join left.txt right.txt
a 1 X b 2 Y
$ join -t ':' -1 1 -2 1 a.txt b.txt
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中でLPIC-1・30 駅め / 106
どんなコマンド?
二つの一覧をキーで突き合わせたい時、簡易的な表結合を行いたい時に使います。
joinは、二つのテキストを共通フィールドで突き合わせて結合するコマンドです。CSV風の簡易データや一覧表をシェルで扱う時に役立ちます。
重要なのは、結合キーで整列されていることです。整列されていない入力に対して使うと期待外れの結果になります。多くの場合、sortを前処理として組み合わせます。
pasteが行番号対応なのに対し、joinはキー対応です。表形式データを扱う入口として覚える価値があります。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ join
使用例と実行結果
行を押すとコピーできます。
a 1 X b 2 Y
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 1
つまずいたとき
期待通りに結合されない
原因入力がキーで整列されていません。
こうするsortで結合キー順にそろえてからjoinします。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。結合に成功しました。
- >0読取失敗や入力不正などで失敗しました。
気をつけることと入れ方
危険度は低いですが、整列前提を満たしていないと結果が崩れます。入力の構造確認が必須です。
確かめた環境2026-04-09 に確認
よくある質問
pasteとの違いは何ですか。
pasteは行対応、joinはキー対応です。
資格試験では
- LinuC レベル1大事1.03.2 フィルタを使ったテキストストリームの処理
- LPIC-1大事103.2 フィルタを使ったテキストストリームの処理
- 共通基礎大事Linuxコマンド基礎
join を最後まで読みました。
Linux コマンド辞典に戻る47 / 144