Benutzer mit den meisten Antworten
Zeilen aus Logdatei filtern

Frage
-
Hallo,
ich möchte aus einer Logdatei einige Zeilen ausgeben lassen. Hier zunächst mal ein Ausschnitt aus der Log Datei
13.14:51:15.197 IsdnApl FaxG3 I Received 2 bytes of data on handle <1>13.14:51:17.963 IsdnApl FaxG3 I Incoming disconnect received on handle <1>
13.14:51:17.963 IsdnApl FaxG3 I Remote ID <> on handle <1>
13.14:51:17.963 IsdnApl FaxG3 I FG3: Send/receive baudrate <14400>
13.14:51:38.323 IsdnApl FaxG3 I Incoming FAXG3 call orig=<NVS:FAXG3.I0.0801/+49> rec=<NVS:FAXG3.I0.0801/+49> ...
13.14:51:38.323 IsdnApl FaxG3 I FAXG3 using ID=<+49> header=<> on handle <1>
13.14:51:50.604 IsdnApl FaxG3 I FaxG3NlMsg: Received Station ID ' +49'
13.14:51:50.604 IsdnApl FaxG3 I Connection on handle <1> is active
13.14:51:51.057 IsdnApl FaxG3 I Outgoing FAXG3 call orig=<NVS:> rec=<NVS:FAXG3.I0.0501/+49>, trying to get a connection (handle <11>) ...
13.14:51:51.057 IsdnApl FaxG3 I FAXG3 using ID=<+49> header=<> on handle <11>
13.14:51:53.823 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:51:55.011 IsdnApl FaxG3 I Received 1919 bytes of data on handle <1>
13.14:51:55.901 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:51:56.808 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:51:57.542 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:51:58.448 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:51:59.339 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:52:00.230 IsdnApl FaxG3 I Received 2048 bytes of data on handle <1>
13.14:52:00.558 IsdnApl FaxG3 I Incoming disconnect received on handle <11>
13.14:52:00.558 IsdnApl FaxG3 I Remote ID <> on handle <11>
13.14:52:00.558 IsdnApl FaxG3 I FG3: Send/receive baudrate <0>Hierbei setzt sich der erste Abschnitt folgendermaßen zusammen.
13. ist der Tag (z. B. 13.03.2012)
14:52:00.558 ist die Uhrzeit im Format hh:mm:ss.sssIch möchte nun Zeilen ausfiltern die folgendes Beinhalten:
Den Text "Incoming FAXG3", das ist recht einfach mit Select-String aber
ich benötige zusätzlich noch die Zeile danach und das ganze möchte ich noch auf einen Zeitbereich beschränken.Also z.B: Alle Zeilen mit dem Text zwischen 14:50 und 15:30 sowie jeweils die Zeile danach.
Ergebnis aus den Zeilen von oben:
13.14:51:38.323 IsdnApl FaxG3 I Incoming FAXG3 call orig=<NVS:FAXG3.I0.0801/+49> rec=<NVS:FAXG3.I0.0801/+49> ...
13.14:51:38.323 IsdnApl FaxG3 I FAXG3 using ID=<+49> header=<> on handle <1>Leider habe ich keinen Plan wie ich das mit der Uhrzeit machen kann.
Antworten
-
Hallo Armin,
danke für die schnelle Antwort. Das ist genau das was ich brauche. Ich habe jetzt noch meine Abfrage hinzugefügt und dann sieht das ganze so aus:
$LogInfo = @() $FAXLog = Get-Content "D:\temp\FAXG3Info.log" Foreach ($LogLine In $FaxLog) { $LogTime = $LogLine.substring(3, 5) If ($LogTime -gt "14:50" -and $LogTime -le "14:55") { $LogInfo += $LogLine } } $LogInfo | Select-String -pattern "Incoming FAXG3" -Context 0,1
Das liest jetzt alle Zeilen aus die Zwischen 14:50 und 14:55 sind und danach wird der Inhalt nach dem Substring durchsucht.
Gruß
Bernhard
- Als Antwort markiert starwars_matrix Freitag, 16. März 2012 13:10
Alle Antworten
-
Hallo,
versuch mal folgendes, sollte eigentlich funktionieren (natürlich musst Du Deine Selection noch mit einfliesen lassen.
$x = get-content "c:\test.txt"
Foreach ($i In $x)
{
$uhrzeit = $i.substring(3,5)
if ($uhrzeit -gt "14:50" -and $uhrzeit -le "15:30")
{
$uhrzeit | Out-File c:\ausgabe.txt -append
}
}Gruß
Armin
-
Hallo Armin,
danke für die schnelle Antwort. Das ist genau das was ich brauche. Ich habe jetzt noch meine Abfrage hinzugefügt und dann sieht das ganze so aus:
$LogInfo = @() $FAXLog = Get-Content "D:\temp\FAXG3Info.log" Foreach ($LogLine In $FaxLog) { $LogTime = $LogLine.substring(3, 5) If ($LogTime -gt "14:50" -and $LogTime -le "14:55") { $LogInfo += $LogLine } } $LogInfo | Select-String -pattern "Incoming FAXG3" -Context 0,1
Das liest jetzt alle Zeilen aus die Zwischen 14:50 und 14:55 sind und danach wird der Inhalt nach dem Substring durchsucht.
Gruß
Bernhard
- Als Antwort markiert starwars_matrix Freitag, 16. März 2012 13:10