join コマンド
2つのファイルにおいて共通のフィールドで行を連結します。
書式 join [ オプション ] [ ファイル名1 ] [ ファイル名2 ]

オプション   内容
-j <フィールド番号>   結合キーとなるフィールド番号を指定する
-1 <フィールド番号>   ファイル1の結合キーとなるフィールド番号を指定する
-2 <フィールド番号>   ファイル2の結合キーとなるフィールド番号を指定する

 joinコマンドは2つのファイルを読み込み、結合キーとなるフィールドで行を連結して標準出力(画面)に出力します。
 ここでいうフィールドとは、1行を行中の(1つ以上の)スペースまたはタブで分割したときの個々の要素のことを指し、一番左のフィールド番号を「」とします。
実行例1

 出力フォーマットは、joinフィールド、ファイル1の残りのフィールド、ファイル2の残りのフィールドがスペースで区切られて出力されます。

 -1オプションおよび-2オプションを使用して、ファイル1とファイル2で別々のフィールドをキーとして指定することもできます。
実行例2

 まるでSQLのようですね。


ヒント
 ・オプションを省略すると、一番左のフィールドが結合キーとして使用されます。
 ・共通の行番号で行を連結するには、pasteコマンドを使用します。
 ・変換結果を別ファイルとして保存するには、リダイレクトを使用します。
 ・結合キーは同じ順番でソートされていないとうまく結合できないようです。例えばファイル1の結合キーが昇順、ファイル2の結合キーが降順となっている場合、キーが一致しているのに結合されない行がでてきます。



テキスト処理コマンド
cat連結して表示(移動不可)
cut指定したフィールドを抽出
expandタブをスペースに変換
fmt指定した桁に整形
head先頭だけ表示
join共通フィールドで行を連結
less表示(移動可・改良版)
more表示(移動可・基本機能)
nl行番号をつけて表示
odバイナリファイル表示
paste共通の行番号で行を連結
pr印刷前の整形
rev各行で行末から行頭に表示
sortソートして表示
split複数ファイルに分割
tac末尾行から先頭行に表示
tail末尾だけ表示
tr文字列変換・削除
unexpandスペースをタブに変換
uniq重複行を取り除く
wc行数、単語数、文字数表示
その他のLinux関連コンテンツ
viをマスターしよう!
シェルスクリプト講座
かんたん!アクセス権
ファイル操作コマンド
ユーザー管理コマンド
ファイル検索コマンド


Yahoo!ブックマークに登録 Googleブックマークに登録 はてなブックマークに登録 livedoorブックマークに登録 deliciousブックマークに登録 Buzzurlブックマークに登録


トップ | このサイトについて | 管理者へメール | サイトマップ
Google www una.soragoto.net  
Copyright(c) 2009 - 2012 una All Rights Reserved.