照合処理のまとめ

https://medium.com/veltra-engineering/uniq-command-and-set-operations-bd4f04b17d9a

・2つのテキストファイルで重複している文字列をリストして!!”
・テキストファイルAからテキストファイルBに記載している文字列を除いてリストして

例えば、上流システムAから下流システムBで下流システムB側が〜だけの顧客IDが届いていないとかざらにある。
それで、下流システムBと下流システムAとで欠落しているデータがどれかをファイルAマスタとファイルBマスタを突き合わせをする。
件数が少なければvlookupとかで全然余裕だが、件数が多かったりしたときに1行ずつgrepをする方法とvlookupしか思いつかなかったので反省も兼ねてこちらに記載する。

まず最初に、ファイルAとファイルBを集合とみなしてください。
なので要素被りは避けたいので
sort fileA.txt|uniq > sort_fileA.txt
sort fileB.txt|uniq > sort_fileB.txt
をしてください。話はそこからです。

次に集合論の話が出てきます。
(1)和集合(集合A,Bの要素の合計を出す)
sort sort_fileA.txt  sort_fileB.txt|uniq

(2)積集合(集合AとBの重複している要素を出す)
sort sort_fileA.txt  sort_fileB.txt|uniq -d

(3)重複削除(集合AとBと重複していない要素を出す)
sort sort_fileA.txt  sort_fileB.txt|uniq -u

(4.1)差集合(集合Aのテキストファイルにある文字列から、集合Bのテキストファイルにある文字列を除外してリスト化)
sort sort_fileB.txt  sort_fileA.txt  sort_fileA.txt|uniq -u

(4.2)差集合(集合Bのテキストファイルにある文字列から、集合Aのテキストファイルにある文字列を除外してリスト化)
sort sort_fileA.txt  sort_fileB.txt  sort_fileB.txt|uniq -u


この記事が気に入ったらサポートをしてみませんか?