Diff

如何使用 diff 從 a.txt 文件中獲取缺失的行?

  • September 22, 2022

我有以下文件:

一個.txt

1
2
11
22
33
444

b.txt

1
2
3
11
22
33
555

我想從 a.txt 中檢索 b.txt 上不存在的行。

我試過了:

diff a.txt b.txt -d
2a3
> 3
6c7
< 444
---
> 555

但我希望輸出是

444

僅有的。有沒有辦法在差異上放置某種過濾器?

使用會更好grep

grep -f b.txt -v a.txt

-f將定義b.txt為要搜尋的模式列表a.txt。並且 key-v將從a.txt沒有找到模式的地方反轉搜尋和列印輸出行。

diff可能是錯誤的工具,請grep改用:

grep -vxf b.txt a.txt

a.txt即從不存在的任何行中獲取b.txt

或者,comm可以通過抑制兩個文件和第二個文件中的行來工作:

comm -23 <(sort a.txt) <(sort b.txt)

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