Join
join コマンドは、UNIXやLinuxシステムで使用されるコマンドの一つで、複数のファイルの対応する行を結合するために使います。通常、join コマンドは、テキストファイルを操作する際に利用されます。事前に結合するファイルがソートされていることが強く推奨されます。ソートされていない場合、正しい結合が行われない可能性があります。
逆に言えば、ソートされている必要があるので、注意
外部結合
join -a 1 -1 1 -2 1 f1 f2
f2にひとつ重複キーがある場合は、11行となる。
- -t
- 区切り文字を指定:オプションなし半角空白
- -t ‘,’
- -o
- 出力するフィールドを指定:指定なしの場合全て出力
- ‘0,1.2,2.3’ -> 0がキー、1.2はf1の2列目、f2の3列目
- 空白は入れない
- -a
- 対応するものがなくても出力するファイル:外部結合
ファイル準備
for f in $(seq 10)
do
echo "$f value$f"
done | sort > f1
cat <<EOF > f2
0 value2-0 value0
2 value2-2 value2
6 value2-6 value6
9 value2-9 value9
EOF