我有两个或多个日志文件将合并到一个新文件中。
日志文件格式可能像
Dir1 File1Path1 File1Path2 Timestamp tempfileName
Dir1 File2Path1 File2Path2 Timestamp tempfileName
Dir2 File1Path1 File1Path2 Timestamp tempfileName`
Dir3 File1Path1 File1Path2 Timestamp tempfileName
Dir3 File2Path1 File2Path2 Timestamp tempfileName
Dir3 File1Path1 File1Path2 Timestamp tempfileName
Dir4 File1Path1 File1Path2 Timestamp tempfileName`
等等
我的要求如下;
- 检查每个日志文件中每一行的格式是否正确,即记录所有值
- 检查没有重复
- 验证文件是否正确合并,即每个日志文件中的所有日志行都已合并到新的日志文件中。
- 将新合并文件与基线文件进行比较
我已经为 1 编写了代码。我读取文件并将内容按行/列加载到数据集中。
data.Tables[tableName].Columns.Add("Dir");
data.Tables[tableName].Columns.Add("Path1");
data.Tables[tableName].Columns.Add("Path2");
using (StreamReader reader = new StreamReader(log))
{
string line = string.Empty;
while ((line = reader.ReadLine()) != null)
{
data.Tables[tableName].Rows.Add(line.Split(new string[] { "\t" }, data.Tables[tableName].Columns.Count, StringSplitOptions.RemoveEmptyEntries));
}
}
但是要完成其余的任务,我不确定将这些行加载到数据集中是否正确?什么是最快和更好的方法?我可以遍历每一行值并与休息进行比较,但我认为它不会更快。日志文件可以在 20 - 45MB 之间。
合并后的日志内容应该是这样的(行可以按任意顺序)
Dir1 File1Path1 File1Path2 Timestamp tempfileName
Dir1 File2Path1 File2Path2 Timestamp tempfileName
Dir2 File1Path1 File1Path2 Timestamp tempfileName
Dir4 File1Path1 File1Path2 Timestamp tempfileName
Dir3 File1Path1 File1Path2 Timestamp tempfileName
Dir3 File2Path1 File2Path2 Timestamp tempfileName
Dir3 File1Path1 File1Path2 Timestamp tempfileName
感谢您的关注。