Linux上比较文件的聪明方法

多年来,在Linux中出现了许多用于比较文件的新工具,并且在这篇文章中,我们将检查七个有用的工具来执行此操作。

一个黄色的箭头对着一串白色的箭头移动
Thinkstock.

自Linux早期以来,用于比较文件的命令激增。在这篇文章中,我们将研究一套用于比较文件的命令,并强调一些新命令的优点。

diff

检测和报告文件差异的最古老和仍然流行的命令之一是diff命令。比较两个会议与会者的列表,diff命令会简单而清楚地告诉你不同之处。

$ DIFF出勤-2020出勤-2021 10,12c10 <门罗兰德里<乔纳森穆迪<奥唐纳摩尔--->桑德拉亨利 - 斯托克欧洲杯男足

仅显示不同的线路。输出仅在第一个文件中的行<只有第二份文件里有>

该输出没有显示参加两次会议的个人的名字,但只显示了那些只参加2020年会议和那些只参加2021年会议的个人的名字。如果您只想知道文件是否不同,您可以添加-q.论点。

$ diff -q attend2020 attend2021文件attend2020和attend2021不同

diff如果两个文件相同,命令不会告诉您任何内容。如果要确认文件相同,则可以添加一个-论点。

文件attend2020和attend2021是相同的

diff命令也可以比较二进制文件(例如,可执行文件和图像),但只会告诉你它们是相同还是不同。

企鹅.png和企鹅.png文件是相同的

如果你想看到两个文本文件的并排比较,你可以使用-y参数并看到如下输出:

diff - y出勤- 2020 - 2021美元阿弗丽达分支阿弗丽达分支汉斯·伯汉斯·伯菲利克斯·伯特菲利克斯·伯特射线Campos射线Campos朱丽叶Chan Chan朱丽叶丹佛坎宁安丹佛坎宁安特里斯坦特里斯坦天肯特郡农民肯特郡农民Terrie哈林顿Terrie哈林顿梦露兰德里|桑德拉Henry-Stocker Jonathon穆迪< Donnell欧洲杯男足摩尔< Leanne Park Leanne Park Alfredo Potter Alfredo Potter Felipe Rush Felipe Rush

Colordiff.

Colordiff.命令通过使用颜色来提高两个文本文件之间的差异来突出显示差异。

$ colordiff attend2020 attend202110、12 10大< Donnell摩尔---<桑欧洲杯男足德拉Henry-Stocker

如果你加上-U选项,两个文件中包含的那些行将以正常的字体颜色出现。

wdiff

wdiff命令使用不同的策略。它突出显示仅在第一个或第二个文件中使用特殊字符的行。由方括号包围的人仅在第一个文件中。由括号包围的人仅在第二个文件中。

$ wdiff出席-2020出席-2021 Alfreda Branch Hans Burris Felix Burt Ray Campos Juliet Chan Denver Cunningham Tristan Day Kent Farmer Terrie Harrington(- - - - - -Monroe Landry <= line in file 1 start Jonathon Moody Donnell Moore- ]<==行只在文件1中停止{+欧洲杯男足+}<= line only in file 2 Leanne Park Alfredo Potter Felipe Rush

vimdiff

vimdiffCommand采用完全不同的方法。它使用vim编辑器以并排的方式打开文件。然后它突出显示使用背景颜色的不同的线路,并允许您编辑两个文件并单独保存每个文件。

与上面描述的命令不同,它在桌面上运行,而不是在终端窗口中。

在Debian系统上,您可以安装vimdiff使用此命令:

$ sudo apt install vim

vimdiff.jpg <=====================

kompare

kompare命令,如vimdifff,在您的桌面上运行。它显示要查看和合并的文件之间的差异,通常由程序员使用,以查看和管理其代码中的差异。它可以比较文件或文件夹。这也是非常可定制的。

学习更多在kde.org

kdiff3

kdiff3工具允许您比较多达三个文件,不仅看到差异突出显示,但合并文件,您认为合适。该工具通常用于管理程序代码中的更改和更新。

就像vimdiffkomparekdiff3在桌面上运行。

您可以找到更多信息kdiff3sourceforge

使用校验和

找出文件是否相同或不同的一个简单方法是计算校验和。如果结果相同,那么文件不同的可能性是无限小的。

使用校验和的主要优点之一是文件甚至不需要在同一系统上。使用相同的校验和命令并比较结果。缺点是校验和不会告诉你如何文件是不同的,甚至是有多大的不同。如果单个字节不同,校验和就会有很大的不同。这就是他们的工作方式。这两个文件只有一个不相同的字母,但校验和却有很大的不同:

$ shasum words-1 words-2 36e191c4a932d239233ca8cced35f7689d070c0c words-1 c09bb9b4b5f61a72a7ca6e933981e151cd35c9a7 words-2

请记住,有许多计算校验和的命令。这样的命令应该帮助您识别系统上安装的命令:

$中肯校验和校验和(1) - 校验和计算文件中的dpkg ::校验(3PERL)字节 - 生成和处理文件校验shasum(1) - 打印或检查SHA校验和(1) - 校验和计算中的块文件TC-CSUM(8) - 校验和更新操作

总结

虽然比较文件有很多选择(本文中没有全部介绍),但最适合你的选择取决于你是想知道文件是否不同,还是想处理这些差异。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对自己最关心的话题发表评论。
相关:

版权©2021足球竞彩网下载

SD-WAN采购商指南:要询问供应商(和您自己)的关键问题