Diff
如何將兩個文件之間的差異寫入文件
說我有兩個文件:
a.txt
和b.txt
.的內容
a.txt
:hello world
的內容
b.txt
:hello world something else
當然我可以用它
vimdiff
來檢查它們的區別,我可以確保它a.txt
是 的一個子集b.txt
,這意味著它b.txt
必須包含存在的所有行a.txt
(就像上面的例子一樣)。我的問題是如何將存在
b.txt
但不存在的行記錄a.txt
到文件中?
comm -1 -3 a.txt b.txt > c.txt
-1
排除僅在 中的行a.txt
,以及-3
排除在兩者中的行。因此,僅輸出僅在其中的行b.txt
(有關詳細資訊,請參見man comm
或comm --help
)。輸出重定向到c.txt
如果您想要兩個文件之間的差異,請使用
diff
而不是comm
. 例如diff -u a.txt b.txt > c.txt
如果你不關心子集,你可以只使用
diff a.txt b.txt|grep ">"|cut -c 3- > foo.txt
.
$ cat a.txt hello world $ cat b.txt hello world something else $ diff a.txt b.txt|grep ">"|cut -c 3- > foo.txt $ cat foo.txt something else