こんな内容のoldというファイル

$ cat old
A
1
B
C
2
3
D

とnewというファイルが

$ cat new
a
1
2
b
c
3
d

あったとする。このoldにしかないない部分を取り出したいなら

$ diff --old-line-format='%L' --unchanged-line-format='' --new-line-format='' old new
A
B
C
D

newにしかない部分を取り出したいなら

$ diff --old-line-format='' --unchanged-line-format='' --new-line-format='%L' old new
a
b
c
d

共通部分を取り出したいなら

$ diff --old-line-format='' --unchanged-line-format='%L' --new-line-format='' old new
1
2
3

とすれば取り出せる。

ここで%L

%L
    行の内容を意味する。行末尾の改行があればそれも含む。 行に改行がなければ、改行はないままになる。

を意味する。

エイリアスに登録した。

alias diffl='diff --old-line-format="%L" --unchanged-line-format="" --new-line-format=""'
alias diffr='diff --old-line-format="" --unchanged-line-format="" --new-line-format="%L"'
alias diffc='diff --old-line-format="" --unchanged-line-format="%L" --new-line-format=""'

macの場合はGNU diffutilsをインストールする必要あり。

$ brew-install diffutils

参考