比較兩個不同的文本 - 發現相同和不同

比較兩個不同的文本 - 發現相同和不同

我想比較不同的兩個文本。請檢查以下詳細資訊以及我需要什麼

第1條文字內容:

111 xx1
222
333
555

第二段文字內容:

333
111 xxx
222
888

我的問題

我正在搜尋一個可以列印以下結果的命令:

“更新:111 xxx”

“刪除:555”

“地址:888”

最重要的是它應該顯示標題“更新”、“刪除”、“新增”。

答案1

你正在尋找

diff <(sort file1) <(sort file2)

這將給

1c1
< 111XZ
---
> 111 xxx
3a4
> 888

其中「<」表示文件 1 中的數據,「">」表示文件 2 中的數據。

請注意輸出,這是一個偽ed符號。

  • c意味著換線
  • a意味著追加
  • d表示刪除(不在上面的範例中)

你可以做

diff <(sort file1) <(sort file2) |
awk '$1 == "<" {$1=" in file1 } $1== ">" { $1="in file2" } { print } '

(就在 之後的行尾|

答案2

你可以用diff它。您只需要習慣它的輸出格式。有一個方便的指南這裡。對於有 GUI 的東西有融合

相關內容