2つのファイルを左右に並べて比較したい
diffコマンドの標準出力は差分箇所のみを表示する形式で、ファイル全体の対応関係が分かりづらい。-yオプションを付けると、2つのファイルの内容を左右2列に並べて表示できる。
$ cat a.txt
apple
banana
cherry
date
$ cat b.txt
apple
blueberry
cherry
elderberry
$ diff -y a.txt b.txt
apple apple
banana | blueberry
cherry cherry
date | elderberry
一致する行はそのまま並び、内容が異なる行には|が表示される。b.txtの末尾にdateという行を追加したc.txtと比較すると、以下のように>が表示される。
$ cat c.txt
apple
blueberry
cherry
elderberry
date
$ diff -y a.txt c.txt
apple apple
banana | blueberry
cherry cherry
> elderberry
date date
c.txtにのみ存在する行には>、a.txtにのみ存在する行には<が表示される。
–suppress-common-lines オプションで一致する行を非表示にする
一致する行数が多いファイルを比較すると出力が長くなり、差分箇所を見つけづらい。--suppress-common-linesオプションを付けると、一致する行を非表示にし、差分がある行のみを表示できる。
$ diff -y --suppress-common-lines a.txt b.txt
banana | blueberry
date | elderberry
-W オプションで出力幅を調整する
デフォルトの出力幅は端末の横幅に対して広すぎる場合がある。-Wオプションで出力の最大幅を指定すると、各列の幅がその範囲に収まるよう調整される。
$ diff -y -W 40 a.txt b.txt
apple apple
banana | blueberry
cherry cherry
date | elderberry
ファイルの行が長い場合は列の幅に収まらず切り詰められるため、-Wオプションの値は比較対象のファイルの内容に応じて調整する。
\第一線のプログラマーの行動原理を学べる!/
