はじめに
beforeファイルとafterファイルを用意した
beforeファイル
a@iMac-PC-0079 ~ % cat before
apple
banana
grape
peach
orange
afterファイル
a@iMac-PC-0079 ~ % cat after
apple
banana
melon
blueberry
grape
peach
strawberry
diffったら以下の様になる
a@iMac-PC-0079 ~ % diff before after
2a3,4
> melon
> blueberry
5c7
< orange
---
> strawberry
いやどこがどう変わったん...って初見だとなりますよね?
(今回のテストファイルが完結なものなのでまだ分かりやすいですが、煩雑になってくるとほんとに見づらいです。)
慣れてる人だったら、あ〜melonとblueberryが加わって、orangeとstrawberryが削除されたのねって分かりますが、>
<
←これで差分表示するの分かりにくすぎるだろ!
エンジニアになって最初の頃ずっと感じていて怒りに満ちていたので私が普段愛用している方法を紹介しようと思います。
解決策
-u
オプションを使おう
これです。-u
をつけるだけで劇的に見やすくなります。
ではご覧くださいどうぞ。
a@iMac-PC-0079 ~ % diff -u before after
--- before 2025-09-02 15:04:25
+++ after 2025-09-02 15:05:15
@@ -1,5 +1,7 @@
apple
banana
+melon
+blueberry
grape
peach
-orange
+strawberry
めっちゃ見やすくないですか?
いや自分しか見ないなら別に-u
付けなくても良いんですよ。でもこれだったらafterでmelon
blueberry
strawberry
が加わり、orange
が削除されたことが初見で誰でも分かりやすいですよね
(なんならデフォルトでこういう表示にしてほしかった)のは置いといて、違うdiffもせっかくなんで紹介しようと思います。
sdiff
sdiff -s
を使うと以下のようになります。
a@iMac-PC-0079 ~ % sdiff -s before after
> melon
> blueberry
orange | strawberry
ちょいクセですが左にbeforeにしかないもの、右にafterにしかないものが表示されます。うーんまあ及第点ですかね...
sdiff
を使うと以下の様になります
あれオプションつけないほうが分かりやすくね?
こっちのがファイルの全体を表示してくれて、かつ差分も分かりやすいですね💡
a@iMac-PC-0079 ~ % sdiff before after
apple apple
banana banana
> melon
> blueberry
grape grape
peach peach
orange | strawberry
いかがでしたでしょうか?
明日から、いや今日からこれを見た人は-u
をつけて、🔰エンジニアに優しい世界を共に作りましょう!