【join】bash/シェルスクリプトマニアックコマンドあれこれ5

joinコマンド

join は、2つのテキストファイルの内容を比較し、共通する項目がある行を連結するコマンドです。
例えば、
1つ目のテキストファイルに「100 apple」、
2つ目のテキストファイルに「100 リンゴ」、
という行があった場合、100 を共通する項目に指定することで、
「100 apple リンゴ」と出力します。

オプション無しの場合

join コマンドに何もオプションがない場合、2つのテキストファイルを比較し、先頭(左から数えて1番目)の項目が共通していたら結合して出力します。
例えば、
1つ目のテキストファイルに「100 apple」、
2つ目のファイルには「100 リンゴ」という行があった場合は、
先頭(左から数えて1番目)の項目を共通項目として連結し、
「100 apple リンゴ」と出力します。

共通項の指定

共通しているかどうかの比較に使用する項目は、join -1 および join -2 オプションで変更できます。
例えば、1つ目のファイルでは“左から数えて3番目の項目”を使いたい場合、join -1 3 のように指定します。
1つ目、2つ目のファイル両方で3番目の項目を使いたい場合は、join -1 3 -2 3 のように指定するか、join -j 3のように、「-j」オプションでまとめて指定することもできます。

ヒント
pasteコマンドしかり、このjoinコマンドも、しらなければプログラムを書いてなんとかなる内容ではありますが、知っているといとも簡単に実現できるわけです。

書籍の紹介

【column】bash/シェルスクリプトマニアックコマンドあれこれ6

【column】bash/シェルスクリプトマニアックコマンドあれこれ6

【paste】bash/シェルスクリプトマニアックコマンドあれこれ4

【paste】bash/シェルスクリプトマニアックコマンドあれこれ4