てきとうなメモ

本の感想とか技術メモとか

コマンドラインで和集合とか積集合とか

2つのファイルに共通する行(積集合)を出力したい場合は

$ cat foo.txt bar.txt | sort | uniq -d

2つのファイルのどちらかに含まれる行(和集合)を出力したい場合は

$ cat foo.txt bar.txt | sort | uniq

片方のファイルに含まれるが、片方のファイルに含まれない行を出力したい場合は、積集合を重複させてuniq -uすれば良いので

$ cat foo.txt <(cat foo.txt bar.txt | sort | uniq -d) | sort | uniq -u

プロセス置換を使ってしまったが。

2つのシステムが全く異なるシステムなんだが共通するIDを使っていて、重複しているものを探したかったりする。そういう場合スクリプト書くのすら面倒なのでIDのリストを出力してコマンドだけでできないかなと思ったので。