我想比較不同的兩個文本。請檢查以下詳細資訊以及我需要什麼
第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 } '
(就在 之後的行尾|
)