ファイルの内容が一緒かどうか目視で確認するのは大変ですよね.
そんなときはdiff
コマンドを使いましょう!diff
コマンドであれば行数関係なくコマンド1つ実行するだけでファイルの差分を確認できます.
今回はファイルの差分を表示するdiff
コマンドについて紹介します.
diffコマンドについて
diff
コマンドを使うと2つのファイルの差分を表示できます.
diff オプション 比較元ファイル 比較先ファイル
ソースコードの変更内容を確認するときに使うと便利でしょう!
数行であれば目で見ても分かりますが,数百行のコードから差分を見つけるのは大変です.
コマンドであれば簡単に見つけられ作業効率が上がりますね.
コマンドを実行して差分を表示する
ここにトレーニングメニューがあります.
10月10日(月)のメニューをコピーし11日(火)分を作成しました.
![](https://tellingbook.com/wp-content/uploads/2023/10/image-44-1024x153.png)
2つのファイルの差分を表示してみましょう!
![](https://tellingbook.com/wp-content/uploads/2023/10/image-46.png)
$ diff 20231010_diff.md 20231010_diff_copy.md
2つのファイルの差分は日付だったため,1行目が差分として表示されました.
出力結果を確認する
差分の見方を確認しましょう!
$ diff 20231010_diff.md 20231010_diff_copy.md
1c1
< # 2023年10月10日(月)のトレーニングメニュー
---
> # 2023年10月11日(火)のトレーニングメニュー
コマンドの後の「1c1」は「変更コマンド」と呼ばれ,元ファイルのどの行をどのように変更したか表しています.
変更コマンドは左から「変更範囲1 変更種別 変更範囲2」を意味し,変更種別は3種類あります.
- a:Add(追加)
- c:Change(変更)
- d:Delete(削除)
以上から「1c1」は「1つ目のファイルの範囲1の箇所が,2つ目のファイルの範囲1の内容に変更された」という意味になりますね.
diffコマンドのオプションを使う
diffコマンドと一緒に使うと便利なオプションについて紹介します.
-c context形式で表示する
差分の変更記号がcontext形式で表示します.
- !:変更点
- + : 追加
- – =:削除
![](https://tellingbook.com/wp-content/uploads/2023/10/image-47-1024x383.png)
-u unified形式で表示する
差分の変更記号がunified形式で表示します.
- + :行の追加
- -:行の削除
![](https://tellingbook.com/wp-content/uploads/2023/10/image-48-1024x321.png)
-y 横並びで表示する
ファイルの内容を横並びで表示します.
![](https://tellingbook.com/wp-content/uploads/2023/10/image-49-1024x280.png)
-q 差分があればメッセージを表示する
差分があればメッセージを表示され,なければ何も表示されません.
![](https://tellingbook.com/wp-content/uploads/2023/10/image-50-1024x219.png)
-s 差分がなくてもメッセージを表示する
差分があれば差分を出力し,なければ差分がないというメッセージを表示します
![](https://tellingbook.com/wp-content/uploads/2023/10/image-51-1024x216.png)
-b 空白の差分は無視する
空白の差分は無視します.
![](https://tellingbook.com/wp-content/uploads/2023/10/image-52-1024x215.png)
まとめ
今回はdiffコマンドの使い方とそのオプションについて紹介しました.
コマンドを使って簡単にファイルの差分を確認できると便利ですね.
diff
コマンドはオプションと併用するとさらに使いやすくなるコマンドだと思ったので是非活用してみてください!