WAVE Log
join

ファイルを結合する

キーとなる列は昇順に並べておく。

# cat list01.txt 10 aa 30 bb 40 cc 70 dd 90 ee

# cat list02.txt 20 VV 30 WW 50 XX 60 YY 70 ZZ

に対して、単純に二つのファイル名を並べて join すると、キー列の項目において、両方のファイルに存在するもののみ表示する。

# join list01.txt list02.txt 30 bb WW 70 dd ZZ

オプションを使用すると、

# join -a 1 -1 1 -2 1 -o 0 1.2 2.2 -e 'NULL' list01.txt list02.txt 10 aa NULL 30 bb WW 40 cc NULL 70 dd ZZ 90 ee NUL

左から、
join コマンド
-a 1:一つ目のファイル(list01.txt)の行は全て表示する。
-1 1:一つ目のファイル(list01.txt)の1列目をキーとする。
-2 1:二つ目のファイル(list02.txt)の1列目をキーとする。
-o:出力する列番号を指定する。
0:キーを表示。
1.2:一つ目のファイル(list01.txt)の2列目を表示。
2.2:二つ目のファイル(list02.txt)の2列目を表示。
-e 'NULL':指定したフィールドがなければ任意の文字列を表示する。(NULLを表示する)