2つのテキストファイルの共通部分を抜き出す

昨日、職場でやろうとしてる人がいて、excelでlookupとかVBで処理を書くとかっていう話をしていたので考えてみました。
即席の、完成度の低いものとしては

$diff --changed-group-format=__PREFIX__ file1 file2 | grep -vr '^__PREFIX__'

(ただしfile1, file2はsort済み)
diffってフォーマット指定できたんですね。
知りませんでした。
まだdiffのマニュアルをきちんと読んではいないのですが、恐らくもっと美しく書けるのだろうなという気がしています。
パイプすら不要な形ですね。
上記の方法では必要な行が表示されない可能性がありますし。


いや、それそもdiffの逆をしてくれるコマンドが最初から存在していたりして…。


美しくはないですが、上記手法の延長で必要な行が落ちる可能性を排除するならば

$diff --changed-group-format=_P1_ --unchanged-group-format=_P2_ file1 file2 | grep -vr '^_P1_' | sed -e 's/^_P2_//g'

という感じでしょうか。