Powershell получает определенное слово из текстового файла, используя -match - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть строка кода для поиска определенного слова и вывода строки, в которую входит это слово.

Get-Content -path "C:\Apps\CamstarPerMon_logs\GetEqStatus - $getdate.log" | % {if($_ -match 'ms') {Write-Host $_}}

Могу ли я вывести конкретную строку с определенным одиночным словом «мс» в нем?потому что вывод, который я получаю:

INF: 2019-09-23 05:50:04.674 | Server1 | ID:12395msrh0000
INF: 2019-09-23 05:50:04.721 | Server1 | 47 ms
INF: 2019-09-23 05:50:05.252 | Server2 | ID:12395msrh0x9c
INF: 2019-09-23 05:50:05.346 | Server2 | 94 ms

, потому что в идентификаторе также есть ключевое слово 'ms'.

Мне нужен вывод только для этого:

INF: 2019-09-23 05:50:04.721 | Server1 | 47 ms
INF: 2019-09-23 05:50:05.346 | Server2 | 94 ms

возможно ли это для -match?спасибо!

1 Ответ

1 голос
/ 25 сентября 2019

Попробуйте следующее:

Get-Content -path "C:\Apps\CamstarPerMon_logs\GetEqStatus - $getdate.log" | % {if($_ -match '[0-9]* ms') {Write-Host $_}}

РЕДАКТИРОВАТЬ:

Согласно RegExr , следующее выражение соответствует вашему требованию:

[0-9]* ms

Таким образом:

{if($_ -match '[0-9]* ms') {Write-Host $_}}

Должно совпадать идеально.

...