2016-04-07 5 views
-4

Regex von einer Zeile, wo bestimmte Dinge extrahiert werden sollen. Beispiel: In der Zeile Ich habe: Dies ist ein Test 2016/01/23 Dies ist Test 04:05 AM Dies ist ein Test Erfolg Login um 01.33 Sek. Wie kann ich nur das Datum, die Uhrzeit & Erfolgszeit extrahieren. So wäre der AusgangRegex für PS Script, um eine Zeile zu lesen


(2016/01/23 04:05 AM Erfolg 01,33 sec).

Schätzen Sie Ihre Hilfe. Prost!

Antwort

0

Ich vermute, ich werde antworten, und dann wirst du kommentieren "meine realen Daten sind völlig anders, wie kann ich das anpassen?". Mal schauen.

# Here is your log line 
$logLine = 'This is a test 2016/01/23 This is test 04:05 AM this is a test Success Login at 01.33 sec' 

# Here is my regex which matches 
#   * date   * time AMPM * Success Login  time  * 
$myRegex = '.*(\d{4}/\d\d/\d\d).*(\d\d:\d\d \S\S).*Success Login at ([0-9.]+ \S+).*' 

# Here is the test and output building 
if ($logLine -match $myRegex) { 
    Write-Host "($($matches[1]) $($matches[2]) Success $($matches[3]))" 
} else { 
    Write-Host "Log doesn't match" 
} 
+0

Danke! Es klappt. Einzige Sache. Wenn ich die nächste Zeile Fail habe, wird immer noch Success angezeigt. Wie kann ich nach Fehler/Erfolg sortieren? Ich schätze deine Eingabe. –

+0

@SamTam Was meinst du? Wie sieht die nächste Zeile aus? Was möchtest du sortieren? – TessellatingHeckler

Verwandte Themen