... es funktioniert genauso, es enthält keine Kontextzeilen.
Weil es keinen Kontext gibt! Sie haben ausdrücklich gesagt Get-Content
, dass Sie die 1
letzte Zeile mit packen sollen -Last 1
, also Select-String
nur eine Zeile erhält.
Kann mir jemand sagen, warum und was ich tun könnte, um solche Kontextzeilen zu erhalten?
Natürlich müssen Sie nur die Anzahl der Zeilen für den Last
Parameter erhöhen . Angenommen, Sie stimmen mit der 1
Zeile in regex überein und wollen 1
line vor und 2
nach ( -Context 1,2
), dann wäre die Gesamtanzahl der Zeilen 1 + 1 + 2 = 4
:
Get-Content -Path 'xxx.log' -Tail 4 | Select-String -Pattern 'Exception' -SimpleMatch -Context 1,2 | ForEach-Object { $_.Context.PreContext $_.Line $_.Context.PostContext }