No.048テキスト処理

join

ジョイン・共通キー結合

知識レベル 実践安全に試せる一般ユーザーで使える

二つの入力を共通フィールドで突き合わせて結合します。前提として入力が結合キーで整列していることが重要です。

答えよく使う形

  1. 共通キーで横結合します
  2. 左入力の結合フィールド番号を指定します
  3. 区切り文字を指定します
visitor@goodly: ~

$ join left.txt right.txt

a 1 X
b 2 Y

$ join -t ':' -1 1 -2 1 a.txt b.txt

覚える順番の中で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

Goodly のメニュー