Select-String возвращает несколько строк
Я изучаю PowerShell и хочу сопоставить строку в переменной. Рассмотрим следующий пример:
$string = ipconfig
Select-String -InputObject $string -Pattern '127.0.0.1'
Возвращает всю строку. Не просто '127.0.0.1'. поэтому я попробовал:
Select-String -InputObject $string -SimpleMatch '127.0.0.1' -AllMatches
, который также возвращает всю строку. Что я делаю не так? Я просто хочу посмотреть матч, а не другие линии.
2 ответов:
Как arco444 упомянул в комментариях, вы можете просто написать:
> $string | Select-String -Pattern "127.0.0.1"
Дополнительные примеры см. В разделеSelect-String Documentation .
Select-String возвращает свойство
.Matches, представляющее собой набор совпадений. СВОЙСТВО.Valueэтого значения соответствует:$string = ipconfig (Select-String -InputObject $string -Pattern '127.0.0.1').Matches.ValueВ этом примере будут возвращены все значения, которые выглядели как IP-адрес:
(Select-String -InputObject $string -Pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' -AllMatches).Matches.ValueОбратите внимание, что если вы сопоставляете с точным шаблоном (например, без подстановочных знаков / регулярных выражений), то вы можете просто использовать
-Quiet, который возвращает true / false в зависимости от того, соответствует ли шаблон:$MyString = '127.0.0.1' If (Select-String -InputObject $string -Pattern $MyString -Quiet) { $MyString }Затем
Comments