side-by-side 形式で差分を表示するsdiffコマンドを紹介します。
以下にsdiffの実行例と同様な動作となるdiffオプションを紹介します。
以下のa.txt, b.txtをdiff, sdiffコマンドの比較として利用しました。
$ cat a.txt hello konnichiwa nihao
$ cat b.txt hello konnichiwa nihao Bonjour
b.txtにだけ、bonjourが存在します。
オプションなしでdiffコマンドを実行してみます。
diff ファイル名 ファイル名
$ diff a.txt b.txt 3a4 > Bonjour
オプションなしでsdiffコマンドを実行してみます。 差分の部分に>が表示され、全てのファイル内容が表示されています。
sdiff ファイル名 ファイル名
$ sdiff a.txt b.txt
hello hello
konnichiwa konnichiwa
nihao nihao
> Bonjour
これでは、大きなファイルを比較したとき、すべてが表示されてしまうので、-sオプションを使用し差分のみ表示します。
差分のみ表示されました。
sdiff -s ファイル名 ファイル名
$ sdiff -s a.txt b.txt
> Bonjour
diffコマンドでも同様な動作をさせることができます。
以下は同じ動作となります。
side-by-sideオプションによりsdiffと同じ動作となります。
sdiff ファイル名 ファイル名
diff --side-by-side ファイル名 ファイル名
$ diff --side-by-side a.txt b.txt
hello hello
konnichiwa konnichiwa
nihao nihao
> Bonjour
次に以下も同じ動作になります。 suppress-common-linesオプションによりsdiffに-sオプションをつけたのと同じ動作になります。
diff --suppress-common-lines --side-by-side ファイル名 ファイル名
sdiff -s ファイル名 ファイル名
$ diff --suppress-common-lines --side-by-side a.txt b.txt
> Bonjour