我试图找到一种方法,使用powershell在同一行中搜索两个不同的字符串匹配项,然后输出该字符串。
例如,我想在文本文件中查找包含单词“ dog”和“ fence”的所有句子。
因此它将命中并检测/输出
句子1:“狗跳过篱笆”
但不匹配:
句子2:“狗去了公园”
句子3:“他们把栅栏漆成白色”
选择字符串将对单个模式执行此操作,但是我似乎无法使它在同一行中用于两个模式匹配。
例如,这将检测到两个模式,但是由于要分别查找该模式,因此将检测所有三个句子:
Select-String -Path C:\Logs -Pattern 'Dog','Fence'
我知道可以使用grep和awk实现此目的的简便方法,但是我希望能找到一种在PowerShell中完成此操作的方法。
答案 0 :(得分:2)
没有Regex AND运算符,但是基于我对Regex的有限了解和对Stackoverflow的快速搜索(因为必须先询问过),我遇到了this,这表明您可能想要尝试一下:
Select-String -Path C:\logs -Pattern "(?=.*dog)(?=.*fence)"
答案 1 :(得分:0)
-Pattern
接受正则表达式,因此可以使用:
Select-String -Path C:\Logs\* -Pattern 'dog.*fence'