Diff

如何將兩個文件之間的差異寫入文件

  • February 11, 2022

說我有兩個文件:a.txtb.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 commcomm --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

引用自:https://unix.stackexchange.com/questions/428419