Посмотрите на Select-String
и -context
параметр:
Если вам нужно только отобразить совпадающую строку и строку раньше, используйте
(для теста я использую мой лог-файл и мое регулярное выражение - дата там)
Get-Content c:\Windows\System32\LogFiles\HTTPERR\httperr2.log |
Select-String '2011-05-13 06:16:10' -context 1,0
Если вам нужно манипулировать им дальше, сохраните результат в переменной и используйте свойства:
$line = Get-Content c:\Windows\System32\LogFiles\HTTPERR\httperr2.log |
Select-String '2011-05-13 06:16:10' -context 1
# for all the members try this:
$line | Get-Member
#line that matches the regex:
$line.Line
$line.Context.PreContext
Если есть другие строки, соответствующие регулярному выражению, получить к ним доступ в скобках:
$line = Get-Content c:\Windows\System32\LogFiles\HTTPERR\httperr2.log |
Select-String '2011-05-13 06:16:10' -context 1
$line[0] # first match
$line[1] # second match