tl;dr
join -a 1 -e NULL -o auto file1 file2
-e
で穴埋めする内容を指定し、-a
で優先する(SQLでいうLEFTに当たる)ファイルを指定する。
-a 1
なら1つ目のファイルの行数を維持して(LEFT OUTER JOIN)、-a 2
なら2つ目のファイルの行数を維持する(RIGHT OUTER JOIN)。
お察しの通り-a 1 -a 2
と両方指定すると FULL OUTER JOINのように双方欠損があれば埋める。
-o auto
はJOIN時のON句にあたるようなもので、どの列をキーとして引き当てるかを指定できる。まずはauto
でよい。
参考
詳しくはこのページを参照のこと。
上記以外にもベン図つきでかなりわかりやすく、SQLとjoinコマンドの対応をまとめてある。