删除文本文件中包含特定字符串的行之后的其余行
本文关键字:之后 余行 字符串 文本 文件 包含特 删除 | 更新日期: 2023-09-27 18:26:10
我有一个api正在写入的文本文件(incoming_orders.log),当incoming_orders.log仍在写入时,我需要保留在某个时间之前收到的所有订单。
incomimg_orders.log示例:
订单Id=1,时间=13:02:04,数量=7,零件=8
订单Id=2,时间=13:04:47,数量=16,零件=1
订单Id=3,时间=13:05:00,数量=5,零件=2
订单Id=4,时间=13:05:01,数量=86,零件=11
订单Id=5,时间=14:58:04,数量=21,零件=19
订单ID=6,时间=14:22:40,数量=7,零件=32
订单Id=7,时间=16:15:17,数量=7,零件=32
订单Id=8,时间=16:21:23,数量=7,零件=32
订单Id=9,时间=16:35:44,数量=7,零件=32…
我需要在13:05:00或之前获得所有订单,并将它们写入新文件;
我尝试了以下操作,但它只去掉了OrderId 4,并保留了其余的
string newFile = @"path.log";
string incoming_orders = @"incoming_orders.log"
var oldLines = System.IO.File.ReadAllLines(incoming_orders);
var newLines = oldLines.Where(line => !line.Contains("Time=13:05:01"));
System.IO.File.WriteAllLines(newFile, newLines);
请让我知道我还可以补充什么来澄清。
感谢
将var newLines...
行更改为:
var newLines = oldLines.Where(line => line.Split(',')[1].CompareTo("Time=13:05:01") < 0);
给定上面的示例行,这导致了以下新的文件内容:
OrderId=1,Time=13:02:04,Quantity=7,Part=8
OrderId=2,Time=13:04:47,Quantity=16,Part=1
OrderId=3,Time=13:05:00,Quantity=5,Part=2