tohokuaikiのチラシの裏

技術的ネタとか。

diffのファイルの前後の違いとかを確認する

いいかげん「あれー、diffコマンドってdiff old_file new_fileだったっけ?逆だっけ?」というのがアレなので確認する。

条件

使うdiffはwslで。

ファイルとして、text1.txt と text2.txt を用意する。 最初はどちらも

1行目
2行目
3行目

なので、

$ diff -c text1.txt text2.txt

は何も出力しない。

基本は、diff -c 古いファイル 新しいファイル

text1.txt

1行目
2行目

text2.txt

1行目
2行目
3行目

だと、

$ diff -c text1.txt text2.txt
*** text1.txt   2024-05-15 12:29:38.162017700 +0900
--- text2.txt   2024-05-15 10:45:12.794588900 +0900
***************
*** 1,2 ****
--- 1,3 ----
  1行目
  2行目
+ 3行目

となる。

新しい方が削除されている場合は

text1.txt

1行目
2行目
3行目

text2.txt

1行目
3行目

だと、

$ diff -c text1.txt text2.txt
*** text1.txt   2024-05-15 12:30:44.119882700 +0900
--- text2.txt   2024-05-15 12:30:46.374843200 +0900
***************
*** 1,3 ****
  1行目
- 2行目
  3行目
--- 1,2 ----

となる。

覚え方

diff 古い→新しい となっている。

出力結果は、「古い方から見て、新しい方はどう変わったか。」なので、「古→新」