私は主な機能がユーザにログテキストファイルから行/列をgrepさせるはずのC#コンソールプログラムを持っています。C#プログラミングテキストファイルから列/行をグレープする方法は?
テキストファイル内の例で、特定の日付などから関連するすべての行のグループをグレープしたい場合 "Tue Aug 03 2004 22:58:34" to "Wed Aug 04 2004 00:56: 48 "。したがって、処理後、プログラムは2つの日付の間にログテキストファイル内にあるすべてのデータを出力します。
grepやファイルから必要なテキスト/データを取得するためのフィルタを作成するために使用できるコードについてアドバイスしてもらえますか?ありがとう!
C#プログラムファイル:
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();
}
}
}
ログのテキストファイルの例:あなたがstring.Contains
ができますより豊かな方法で一致した行を選択するために、Regex
を使ってこれを行うことが
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
「StartsWith」は最初だけを読みますか?いくつかの行は、複数のプロセスが同時に発生しているフォームとして日付で始まらないためです。ありがとう。 – JavaNoob
@JavaNoob:はい、 "StartsWith"は行の先頭だけをチェックするので、 "Contains"とも言われています。あなたの複数のプロセスがログファイルを破損していると思われますが、別の問題として。 –
複数のプロセスが正しく使用されるのは、ログがMACtimesの用途として使用されるためです。上記の私の質問のログセクションを編集しましたので、一度ご覧ください。ありがとう。 – JavaNoob