UNIXには2つのファイルがあります。最初のファイルはエンティティで、2番目のファイルは参照です。最初のファイルには Entity ID という列が 1 つだけあり、2 番目のファイルには Entity ID Person ID という 2 つの列があります。
両方のファイルのエンティティIDが一致する出力ファイルを生成したいと思います。
エンティティファイル
624197
624252
624264
624276
624280
624309
624317
参照文書
624252|624346
624264|1070122
624264|624346
624276|624588
624280|624346
624280|624582
624298|624588
624319|333008
624330|624588
結果ファイル
624252|624346
624264|1070122
624264|624346
624276|624588
624280|624346
624280|624582
エンティティファイルには90,000のレコードがあり、参照ファイルには200,000のレコードがあります。 3番目のファイルを生成する効率的な方法はありますか?すべてのソリューションに感謝します。
ベストアンサー1
ファイルがすべてソートされたとします。
join -j1 -t\| entity.txt reference.txt
ソートされていない場合はソートします。
sort entity.txt -o entity-sorted.txt
sort reference.txt -o reference-sorted.txt
join -j1 -t\| entity-sorted.txt reference-sorted.txt