...it just works the same, it doesn't include any context lines.
Porque não há contexto! Você disse explicitamente ao Get-Content
para pegar 1
da última linha com -Last 1
, então Select-String
recebe apenas uma linha.
Can anyone tell me why and what I could do to get context lines like this?
Claro, tudo o que você precisa fazer é aumentar o número de linhas para o parâmetro Last
. Supondo que você corresponde a 1
line na regex e deseja que 1
line antes e 2
depois ( -Context 1,2
), a quantidade total de linhas seria 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
}