Подстановочные знаки в строке поиска PowerShell - PullRequest
0 голосов
/ 14 февраля 2019

Я использую findstr для поиска определенного параметра конфигурации в некоторых файлах.В этом случае я ищу строки, которые начинаются со строки *=, но также могут быть * = или * = и т. Д. (Любое количество пробелов между звездочкой и знаком равенства).

До сих пор я пробовал:

findstr /s /i /b "*\*=" .\config.ini
findstr /s /i /b "*.*=" .\config.ini
findstr /s /i /b "*`*=" .\config.ini

По сути, любой escape-символ, который я мог найти в документации PowerShell, безуспешно.

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете использовать стиль регулярных выражений при поиске шаблонов в ваших INI-файлах.

Я использовал этот тест config.ini:

*=abc
* = cde
**=avc
a=b
c = d
e =

И с помощью этой команды я получаю строки, которые вы описалив вашем вопросе:

findstr /R /C:"^\*[ ]*=.*" config.ini

Результат:

*=abc
* = cde

Здесь описание регулярного выражения: ^ означает начало строки.Тогда вы просите *.Вы должны избежать этого, поэтому вы должны использовать \*.После этого может быть любое количество пробелов, поэтому вы поместили его в класс регулярных выражений, например [ ]* ([<space>]*).После пробелов стоит знак равенства =, а после знака равенства может быть любой другой символ, поэтому .*.

...