【Linuxコマンド】diffでファイルの差分を出力する方法

Linuxではファイルの差分を確認するときに便利な「diff」コマンドがあります。

ここでは「diff」コマンドについて以下の内容で解説していきます。

diff_image

この記事では「diff」コマンドについてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

目次

diffコマンドとは

shutterstock_142466296

「diff」コマンドはファイルを比較して、差分を確認したい場合に使用します。

プログラムを記述したソースファイルに変更があった場合など、どこに変更を加えたか元ファイルと比較して差分を確認したい場合に使用することが多く、Linuxで開発に携わるエンジニアなら使用する頻度は高いコマンドと言えるでしょう。

・「diff」コマンドの書式

$ diff 比較対象ファイル1 比較対象ファイル2

diffコマンドの使い方

ここではdiffコマンドの使い方をパターン別に見ていきましょう。

ファイルの差分を出力する

testディレクトリにあるsample01.txtとsample02.txtを比較してみます。

まずは以下のコマンドを実行してファイルを作成しておきます。

$ echo -e "aaa\nbbb\nccc\nddd\neee" > sample01.txt
$ echo -e "aaa\nbbb\nfff\nddd\neee" > sample02.txt

ファイルを作成したら、diffコマンドで比較してみます。

$ diff sample01.txt sample02.txt

実行結果:
diff_image01

sample01.txtとsample02.txtの差分が表示されました。

「3c3」と表示されているのは、ファイル1の3行目がファイル2の3行目の内容に変更されていることを意味します。

では複数行にまたがって変更されている場合はどのように出力されるのでしょうか?

まずは以下のコマンドでsample03.txtを作成しておきます。

$ echo -e "aaa\nbbb\nfff\nddd\nggg" > sample03.txt

作成したsample03.txtをsample01.txtと比較してみます。

$ diff sample01.txt sample03.txt

実行結果:
diff_image02

複数行変更がある場合は「3c3」「5c5」のように1つずつ差分が表示されることがわかりますね!

差分をテキストに出力

実際にソースファイルの内容を比較する場合、修正箇所が多いと差分の内容を確認するのも大変です。

そこでdiffで取得した差異内容をリダイレクトでテキストに出力しておくと便利です。

先ほど紹介したコマンドの内容をdiff.txtという名前でリダイレクトしてみます。

$ diff sample01.txt sample03.txt > diff.txt
$ view diff.txt

作成されたdiff.txtを確認すると、内容が表示されていることがわかります。

diffコマンドのオプション

diffコマンドでは以下のオプションがよく使用されます。

オプション説明
-cファイルの内容を出力して違いのある箇所を「!」で表す
-s差異が無い場合は同一であるを出力する
-qファイルが異なるかどうかのみチェックする

-cで差分をわかりやすく表示

比較するファイルの内容をそれぞれ出力して変更点を視覚的に分かりやすく表示するには「-c」オプションを使用します。

「-c」を使用すると、変更箇所は「!」で表示されます。

$ diff -c sample01.txt sample03.txt

実行結果:
diff_image03

このようにファイルの内容と変更箇所が「!」で表示されるので、どの箇所が変更されたかひと目でわかりますね!

-qでファイル内容が異なるかチェックする

ファイルの差分を表示させずに、内容が異なるかどうかのみをチェックしたい場合は「-q」オプションを使用します。

$ diff -q sample01.txt sample03.txt

実行結果:
diff_image04

ファイルの内容が異なる場合は、

「ファイル sample01.txt と sample03.txt は異なります」

のように出力されます。

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、Linuxでファイルの差異を確認する「diff」コマンドについて、

  • diffコマンドとは
  • diffコマンドの使い方
  • diffコマンドのオプションと使い方

について解説しました。

ソースファイルに修正を加えた場合など、正しく変更されているか「diff」コマンドで差異を確認する機会はよくありますので、使い方はよく理解しておきましょう。

もし、diffの使い方を忘れてしまったら、この記事を参考にしてくださいね。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次