比较两个不同的文本 - 发现相同和不同之处

比较两个不同的文本 - 发现相同和不同之处

我想比较两篇不同的文章。请查看以下详细信息以及我需要的内容

第一篇正文内容:

111 xx1
222
333
555

第二篇正文内容:

333
111 xxx
222
888

我的问题

我正在搜索一个可以打印以下结果的命令:

“更新:111xxx”

“删除: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 的东西融合

相关内容