メモ:ソート済みの2つのファイルの共通する行、差分を抜き出す

2つのテキストファイルA.txt, B.txtにおいて共通する行、A.txtだけに存在する行、B.txtだけに存在する行を抜き出す。commコマンドは知らんかった。

まず、ソートする。

% cat A.txt
dog
cat
egg
bat
bot

% cat B.txt
cat
elephant
water
dog

% sort A.txt | tee A.txt.sort
bat
bot
cat
dog
egg

% sort B.txt | tee B.txt.sort
cat
dog
elephant
water

共通部分を抜き出す。

% comm -1 -2 A.txt.sort B.txt.sort | tee common.txt
cat
dog

A.txtだけに存在する行を抜き出す。

% grep -v -x -f common.txt A.txt.sort | tee left.txt
bat
bot
egg

B.txt だけに存在する行を抜き出す。

% grep -v -x -f common.txt B.txt.sort| tee right.txt
elephant
water