diffでテキストファイルの違う行だけ表示したい
diff
diff data1.txt data2.txt
と普通に使うと
--- data1.txt
+++ data2.txt
@@ -1,4 +1,4 @@
11111
-22222
+22225
33333
-44444
+44445
のように内容が同じ行と違う行とが混じって表示されます。
行数が多い時にはちょっと見づらいなと思いました。
sed
同じ行の先頭は空白なので、sedでフィルタ(削除)します。
sed -e '/^ .\+/d'
「^ 」先頭が空白で始まる「.\+」任意の文字列をdで削除という意味です。
diffとパイプでつなぎます。
diff data1.txt data2.txt | sed -e '/^ .\+/d'
すると
--- data1.txt
+++ data2.txt
@@ -1,4 +1,4 @@
-22222
+22225
-44444
+44445
違う行だけになってスッキリしました。
最近Windows上でbusyboxを使い、シェルの勉強をしているんですが奥が深いです。
Author And Source
この問題について(diffでテキストファイルの違う行だけ表示したい), 我々は、より多くの情報をここで見つけました https://qiita.com/tkotobu1048/items/209de2683995a3f52d23著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .