join
概要
join コマンドは、UNIXやLinuxシステムで使用されるコマンドの一つで、複数のファイルの対応する行を結合するために使います。通常、join コマンドは、テキストファイルを操作する際に利用されます。事前に結合するファイルがソートされていることが強く推奨されます。ソートされていない場合、正しい結合が行われない可能性があります。
注意: 結合前にソートしておく必要がある。
外部結合
join -a 1 -1 1 -2 1 f1 f2
f2 に重複キーがあると、そのキーに対応する f1 の行ごとに出力されるため行数が増える(例: f1 が10行で重複が1つなら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