问题标签 [file-comparison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
615 浏览

xml - GUI XML 比较工具,用于在 Linux 差异化之前解析 XML

我正在寻找一个 XML 比较工具,该工具将在为 Linux(RHEL 5.7,Gnome)进行比较之前解析 XML。我比较的文件在行比较中有 99% 不同,但在解析后有 85% 相同。

  • 我发现 ExamXML Pro 似乎是一个可以很好地完成这项工作的工具。它只是Windows。
  • OxygenXML Diff 是为 Linux 构建的,但似乎无法处理以不同顺序排列但结构相同的 XML。

有很多关于 XML 差异或比较工具的堆栈溢出问题,但大多数问题较旧或不特定于 Linux 环境。

0 投票
2 回答
2503 浏览

filenames - 如何匹配相似的文件名并重命名,以便 Beyond Compare 等差异工具将它们视为一对以执行二进制比较?

我正在寻找比较我认为相同但文件名不同的文件的最佳方法。BeyondCompare 之类的比较工具很棒,但它们还不能处理不同的文件名——当比较不同文件夹中的文件时,它们会尝试与两边同名的文件进行比较。

(我不为 BeyondCompare 工作或对 BeyondCompare 没有经济利益,但我经常使用该工具并发现它有一些很棒的功能)。

有 MindGems Fast Duplicate File Finder 用于在多个文件夹树中的任何位置匹配文件还不如 BeyondCompare 那样信任它。BeyondCompare 提供了对文件进行完整二进制比较的完整思路。

在我的情况下,文件往往具有相似的名称,不同之处在于单词的顺序、标点符号、大小写差异以及并非所有单词都存在。因此,使用正则表达式过滤器来匹配某些 diff 工具(如 Beyond Compare)已经提供的文件并不容易,因为文件子字符串可能是无序的。

我正在寻找一种方法来匹配相似的文件名,然后再将文件重命名为相同的文件,然后将它们“提供”给 BeyondCompare 等工具。解决方案可以是脚本,也可以是应用程序的形式。

目前,我有一个算法(在 Perl 中实现)来匹配文件名以适应我的问题,即文件名与上述相似。

你能提出更好的或完全不同的方法吗?

  1. 查找文件大小完全相同的文件列表

  2. 使用非字母数字字符或空格作为分隔符,对第一个文件中的字母数字子字符串进行哈希处理

  3. 使用非字母数字字符或空格作为分隔符,对第二个文件中的字母数字子字符串进行哈希处理

  4. 匹配事件

  5. 查找哪个文件具有最多的子字符串。

  6. 根据匹配数除以最高子字符串数,计算对比较的百分比分数。

  7. 重复比较每个文件与具有确切文件大小的每个其他文件

  8. 按百分比分数对比较进行排序,以获得要比较的文件的建议。

  9. 重命名该对中的一个文件,使其与另一个相同。放在单独的文件夹中。

  10. 使用文件、文件夹比较模式运行 BeyondCompare 之类的比较工具。

0 投票
7 回答
2140 浏览

php - 如何通过使用 php 比较两个文件来找到额外的行?

我有两个文件。

第一个有 482 行。第二个只有 519 行。

我想通过使用 php.ini 比较两个文件来找到额外的行。

假设我的第一个文件有这样的行

假设我的第二个文件看起来像这样

请注意:这些行是随机排列的。现在我想使用 php 脚本来删除相同的行并保留多余的行。例如文件 1 包含行Mango。文件 2 也包含该行,但顺序随机。所以我想删除那条线。

0 投票
2 回答
2524 浏览

perl - 使用 perl md5 比较两个文件

我想运行一个代码,持续检查文件是否存在,然后检查文件的 MD5 与以前的 MD5 。如果有一些变化,那么它会执行一些代码。但是每次我为同一个文件调用 hexdigest 时,perl MD% 似乎都会发生变化。MD5每次都变吗?

我最初有

while(1)

如果这不是如何做到的,还有什么可以实现我的意图吗?谢谢

0 投票
2 回答
252 浏览

perl - 如何仅将新行和/或更新行插入另一个文件

与 Perl 打交道并已被阻止的第一天 :)

情况是这样的:一个文件在文件夹 A 中更新,但也存在于文件夹 B、C 和 D 中,为了更容易,所有文件都可以不同,所以我不能只做一个差异。打算复制到其他文件的新行由行尾的标志标识,例如#I

更新前的文件如下所示:

更新后是这样的:

我需要做的是在其他文件上搜索“第二行”,插入标有#I的行 - 按照它们插入的顺序 - 然后搜索“第五行”并插入“第六行#I” .

在这个例子中,它们都是连续的,但是在我需要更新的文件中,第一个更新块和第二个(以及第三个等等)之间可以有几行。

将要更新的文件可以是sh脚本、awk脚本、纯文本文件等,脚本应该是通用的。该脚本将有两个入口参数,更新的文件和要更新的文件。

欢迎提供有关如何执行此操作的任何提示。如果需要,我可以提供到目前为止的代码 - 关闭但尚未工作。

谢谢,

若昂

PS:这是我到目前为止所拥有的

获得的结果几乎是我想要但还没有的结果。

0 投票
2 回答
6427 浏览

batch-file - 当文件不同时,批处理文件比较返回 0

我在需要批处理文件来运行不同作业的 Windows 2003 服务器上使用调度系统。我有一项工作是检查文件是否存在,比较文件是否为空,然后根据结果执行某些操作。每次我运行它,返回的错误级别都是 0,但是文件不同。我期待看到 1 返回。

我已经验证了文件的位置,一个文件有内容,另一个是空的。我已经设置了提示,他们都说 %ERRORLEVEL% 是 0。我什至将文件移动到批处理作业的同一目录中,但它们仍然显示 0。

编码:

输出:

我在同一台服务器上的其他作业中有这个确切的代码,指向不同的数据文件,它可以工作。关于我可以尝试什么的任何想法?

0 投票
2 回答
1125 浏览

java - Java FileUtils 复制备份目录

我正在使用 Commons.IO 的 FileUtils 并且我正在尝试创建一个备份脚本,简单的规则是将 dest 中不存在的所有文件(和子目录)从源复制到 dest 目录,或者如果源具有 lastmodified日期比其他日期新。

我不明白 FileUtils.copyDirectory() 是否是正确的选择,而不是如何设置正确的 FileFilter。

谢谢你。

0 投票
4 回答
2162 浏览

python - 在python中匹配数组列

我有两个文件,内容如下。我的问题是,在下面显示的代码中,如果 id 在 file1 和 file2 中匹配,那么如何匹配 file1 中的第二列和 file2 中对应的第二列直到 n 列..

文件1:

文件2:

0 投票
1 回答
397 浏览

c# - 比较两个版本的文件并将更改应用于旧文件

我一直在搜索和谷歌搜索这个问题,我已经知道如何比较两个文件(哈希、校验和等)。但这不是我所需要的。我需要的内容如下所述。

假设我有一个文件并且我已经备份了它。后来我对该文件进行了一些更改,因此我想将更改应用到备份版本。由于两个文件可能足够大而更改可能很小,所以我不想重写所有文件,因为我打算通过互联网(可能是 FTP)备份它,这可能需要很多时间。

我如何看待这个(样本):

文件的备份版本(字节)

较新版本的文件(字节)

而不是重写所有字节,我们应该:

  1. 更改253624(更改字节)
  2. 删除637字节(删除字节)
  3. 890在文件末尾写入(插入字节)

1、2、3 选项不一定在每种情况下都同时出现。请注意,备份文件可能位于其他地方,我只能通过互联网访问它(服务器可以返回一些内容,以便我们可以比较文件)。

我怎样才能做到这一点?我知道这可能是因为我知道实现它的软件(但不知道如何实现)。欢迎和高度评价任何提示、教程等。提前致谢。

0 投票
2 回答
539 浏览

java - 用java查找多个文本文件的共同元素的最佳方法是什么?

我有一个程序可以创建多个 rdf 三元组的文本文件。我需要比较三元组并快速完成,最好的方法是什么?我曾想过将三元组放入一个数组并进行比较,但每个文件可能有数十万个三元组,这将花费很长时间。我需要它尽可能接近实时,因为三元组将在文件中不断进行分类。任何帮助都会很棒。这些文件也在 AllegroGraph 存储库中,如果以某种方式比较它们更容易的话。

一个想法:如果我将三元组存储在 excel 中(每行一个三元组)并且每个存储库一张表,

A:我怎样才能在表格中找到重复项。B:会不会很快。和 C:我怎样才能从 Java 自动化呢?