Ich habe ein C# -Konsolenprogramm, dessen Hauptfunktionen es einem Benutzer ermöglichen sollten, Zeilen/Spalten aus einer Protokolltextdatei zu grepsen.C# -Programmierung Wie grep Spalten/Zeilen aus Textdatei?
Ein Beispiel in der Textdatei der Benutzer möchte eine Gruppe aller verwandten Linien ab einem bestimmten Datum usw. grep "Di Aug 03 2004 22:58:34" bis "Mi Aug 04 2004 00:56: 48 ". Daher würde das Programm nach der Verarbeitung alle zwischen den 2 Daten liegenden Daten in den Log-Text-Dateien ausgeben.
Könnte jemand bitte auf einige Codes hinweisen, die ich verwenden könnte, um grep oder einen Filter zu erstellen, um die notwendigen Texte/Daten aus der Datei abzurufen? Vielen Dank!
C# Program Files:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
namespace Testing
{
class Analysis
{
static void Main()
{
// Read the file lines into a string array.
string[] lines = System.IO.File.ReadAllLines(@"C:\Test\ntfs.txt");
System.Console.WriteLine("Analyzing ntfs.txt:");
foreach (string line in lines)
{
Console.WriteLine("\t" + line);
// ***Trying to filter/grep out dates, file size, etc****
if (lines = "Sun Nov 19 2000")
{
Console.WriteLine("Print entire line");
}
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
}
Log Textdatei Beispiel:
Wed Jul 21 2004 16:58:48 499712 m... r/rrwxrwxrwx 0 0 8360-128-3
C:/Program Files/AccessData/Common Files/AccessData LicenseManager/LicenseManager.exe
Tue Aug 03 2004 22:58:34 23040 m... r/rrwxrwxrwx 0 0 8522-128-3
C:/System Volume Information/_restore{88D7369F-4F7E-44D4-8CD1-
F7FF1F6AC067}/RP4/A0002101.sys
23040 m... r/rrwxrwxrwx 0 0 9132-128-3
C:/WINDOWS/system32/ReinstallBackups/0003/DriverFiles/i386/mouclass.sys
23040 m... r/rrwxrwxrwx 0 0 9135-128-4 C:/System Volume
Information/_restore{88D7369F-4F7E-44D4-8CD1-F7FF1F6AC067}/RP4/A0003123.sys
23040 m... r/rrwxrwxrwx 0 0 9136-128-3
C:/WINDOWS/system32/drivers/mouclass.sys
Tue Aug 03 2004 23:01:16 196864 m... r/rrwxrwxrwx 0 0 4706-128-3
C:/WINDOWS/system32/drivers/rdpdr.sys
Tue Aug 03 2004 23:08:18 24960 m... r/rrwxrwxrwx 0 0 8690-128-3
C:/WINDOWS/system32/drivers/hidparse.sys
Liest das "StartsWith" nur den Anfang? Weil es einige Zeilen gibt, die nicht mit einem Datum als Formular mit mehreren Prozessen beginnen, die gleichzeitig stattfinden. Vielen Dank. – JavaNoob
@JavaNoob: Ja, "StartsWith" prüft nur den Anfang der Zeile - deshalb habe ich auch "Contains" erwähnt ... obwohl es sich anhört, dass Ihre verschiedenen Prozesse möglicherweise Ihre Log-Dateien korrumpieren, was sich zu reparieren lohnt als separate Angelegenheit. –
Die mehreren Prozesse werden korrekt verwendet, da die Protokolle als Verwendung für MACtimes gedacht sind. Ich habe die Log-Abschnitte in meiner Frage oben bearbeitet, also sehen Sie sich das bitte an. Vielen Dank. – JavaNoob