[英]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.