Использование Powershell для поиска двух разных сопоставлений с образцом в одной строке и вывод обнаруженной строки - PullRequest
1 голос
/ 17 июня 2019

Я пытаюсь найти способ использовать powershell для поиска двух разных совпадений строк в одной строке, а затем для вывода этой строки.

Например, я хочу найти все предложения в текстовом файле, который содержит слова «собака» и «забор».

Таким образом, он будет попадать и обнаруживать / выводить

Предложение 1: "Собака перепрыгнула через забор"

Но не совпадают по:

Предложение 2: "Собака пошла в парк"

Предложение 3: «Они покрасили свой забор в белый цвет»

Select-String сделает это для одного шаблона, но я не могу заставить его работать для двух совпадений шаблонов в одной строке.

Это, например, обнаружит два шаблона, но все три предложения, так как он ищет шаблон индивидуально:

Select-String -Path C:\Logs -Pattern 'Dog','Fence'

Я знаю, что есть простые способы сделать это с помощью grep и awk, но я надеялся найти способ сделать это в PowerShell.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Оператора Regex AND нет, но, основываясь на моих ограниченных знаниях Regex и быстрого поиска в Stackoverflow (потому что об этом раньше уже спрашивали), я наткнулся на на , что говорит о том, что вывозможно, захотите попробовать это:

Select-String -Path C:\logs -Pattern "(?=.*dog)(?=.*fence)"
0 голосов
/ 18 июня 2019

-Pattern принимает регулярное выражение, поэтому это будет работать:

Select-String -Path C:\Logs\* -Pattern 'dog.*fence'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...