我正在寻找快速比较2个文本文件(+ -15000lines)的最佳方法,并获得两个文件中不同的输出字符串。 第一个是旧库存,新的是当前库存,我想生成第三个包含在file2和&之间不同的字符串。文件1。 (2个文件中有95%会相似)。
答案 0 :(得分:8)
非常简单的方法,假设类似意味着相等:
var file1Lines = File.ReadLines(file1Path);
var file2Lines = File.ReadLines(file2Path);
IEnumerable<String> inFirstNotInSecond = file1Lines.Except(file2Lines);
IEnumerable<String> inSecondNotInFirst = file2Lines.Except(file1Lines);
您可以使用foreach
枚举这些行。
答案 1 :(得分:2)
您可以使用Google提供的this差异库。查看带有2个字符串的diff_main方法并返回差异列表。
答案 2 :(得分:1)
如果输出的顺序相同,则直接比较直线。当另一个文件中缺少值时,您可能需要跳过行。
但是,如果输出不相同,则可能需要将文件加载到内存中,并从一个文件到另一个文件中查找相关的清单项。然后在找不到或不同的时候做你需要的任何事情。