comm

UNIXコマンドで2つのファイルの差分を取りたいとします。
普通diffを使いますね。

でも自動処理したい場合はdiffの出力は引用符がつくので厄介です!!

たとえば、ファイルAと、ファイルAの内容を包含するファイルBとの間の差分Xを出力し、別コマンドに渡す場合など。
この場合はcommコマンドを使います。
くわしくは、manを参照。

commは各ファイルに対して固有の行および両ファイルに共通の行を、表示したり抑制したりします。

たとえばcomm -13 A.txt B.txt とやると引数指定した2番目のファイル(B.txt)にだけある行が出力されます*1

ではファイルAのみに存在する行とファイルBのみに存在する行がある状態で、いずれか片方のファイルにだけある行を表示したい場合は、どうか?

お分かりですね。comm -13 A.txt B.txtの出力とcomm -23 A.txt B.txtの出力をあわせればいいんですね。

*1:これはファイルの中の各行がユニークである前提ですけど、uniq -uを使って重複行を排除する手も使えますね。