diffコマンドの表示を見やすくする

diff コマンドでファイルを比較できますが、下記のように標準出力だと少しわかりにくいです。

構文:diff ファイル1 ファイル2

$ cat test1.txt
test1
test2
test3

$ cat test2.txt 
test2
test3
test4

$ diff test1.txt test2.txt 
1d0
< test1 3a3 > test4

「-u」にオプションを付けると少し見やすくなります。
「-u」にオプションは、差分をunified形式で表示します、違いのある箇所を1つにまとめて、-記号と+記号で変更箇所を示す

$ diff -u test1.txt test2.txt 
--- test1.txt   2024-11-01 13:39:54.572648765 +0900
+++ test2.txt   2024-11-01 13:39:48.315595617 +0900
@@ -1,3 +1,3 @@
-test1
 test2
 test3
+test4

差分のあった前後の行やファイル名を省きたい場合は、diff コマンドの出力から、grep コマンドや awk などのフィルタリングツールを組み合わせることができます。

$ diff -u test1.txt test2.txt  | grep "^[+-]" | grep -v "^+++" | grep -v "^---"
-test1
+test4

オプションの解説

  • diff -u: 差分をunified形式で表示。違いのある箇所を1つにまとめて、-記号と+記号で変更箇所を示す
  • grep "^[+-]": + または - で始まる行のみをフィルタリング(差分がある行)。
  • grep -v "^+++"grep -v "^---": ファイル名を示す行を除外。

スポンサーリンク

0
0