繁体   English   中英

c#比较两个文本文件并生成一个有差异的新文件

[英]c# Compare two text files and generate a new one with differences

我正在寻找快速比较 2 个文本文件(+-15000 行)并获得两个文件中不同的输出字符串的最佳方法。 第一个是旧库存,新库存是当前库存,我想生成第三个,其中包含文件 2 和文件 1 之间不同的字符串。 (2 个文件中有 95% 是相似的)。

非常简单的方法,假设相似意味着相等

var file1Lines = File.ReadLines(file1Path);
var file2Lines = File.ReadLines(file2Path);
IEnumerable<String> inFirstNotInSecond = file1Lines.Except(file2Lines);
IEnumerable<String> inSecondNotInFirst = file2Lines.Except(file1Lines);

您可以使用foreach来枚举行。

您可以使用 Google 的这个差异库。 查看 diff_main 方法,该方法接受 2 个字符串并返回差异列表。

如果输出顺序相同,则直接比较行。 当另一个文件中缺少该值时,您可能需要跳过一行。

但是,如果输出不同,那么您可能需要将文件加载到内存中,并从一个文件到另一个文件中查找相关的库存项目。 然后在未找到或不同时执行您需要的任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM