比较两个文件的内容(差异)
Posted
技术标签:
【中文标题】比较两个文件的内容(差异)【英文标题】:Compare content of two files (diff) 【发布时间】:2021-06-30 22:50:35 【问题描述】:我想要做的是比较两个不同文件的内容。我不知道我做错了什么,但是我在网上搜索的关于 diff 命令的东西没有用。
例如如果fileA的内容是这样的:
AAA:111
BBB:222
CCC:333
而fileB的内容是:
AAA:111
BBB:222
我希望看到的输出只是 CCC:333 的差异。没有“”,只是简单的 CCC:333。我想稍后在我正在处理的 bash 脚本中使用它。
如果这些文件被反转也有关系吗?我的意思是如果它是包含 CCC:333 的 fileB?
我不知道这是否重要,但我正在处理的文件是 MAC 地址。
我尝试使用的 diff 命令是否区分大小写?
【问题讨论】:
不清楚你想要什么。文件 A 中所有不在文件 B 中的行? either 文件中的所有行不在另一个文件中?顺序重要吗?sort fileA fileB | uniq -u
?
如果文件已排序,您可以使用comm
。
【参考方案1】:
您可以使用两个diff
选项,如下所示:
diff --changed-group-format='%<' --unchanged-group-format='' fileA fileB
【讨论】:
【参考方案2】:如果其他人正在寻找这些答案,我只想补充说它们都有效!
Cyrus 的 sort 和 uniq 解决方案将显示这两个文件的差异(如果不同之处在于它们都有 aaa 和 bbb 行,但只有一个有 xxx,另一个有 yyy,它会打印出那些两行 xxx 和 yyy)。
Philippe 的 diff 命令解决方案可以为您提供不同的输出,因为这取决于您是先放 fileA 然后放 fileB 还是先放 fileB 然后放 fileA。 自己测试一下。
如有错误请指正!
感谢您的帮助。
【讨论】:
以上是关于比较两个文件的内容(差异)的主要内容,如果未能解决你的问题,请参考以下文章