在一个句子中查找多个关键字

时间:2016-08-23 20:39:03

标签: powershell

我目前正在尝试在相当大的文本文档中搜索多个关键字,例如:我需要搜索区域和纽约是否只显示一个句子。我目前的脚本只提供了一个或另一个,但不是两个。

我目前的脚本是:

Get-Content <file name>.txt | Select-String '(phrase)'

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

以下是如何获得多种模式的结果:

get-content "YourTextFile.txt" | select-string -pattern '(regional.*new york)|(new york.*regional)'

基本上,这会查找两个短语以任何顺序出现在同一行中的任何内容。

答案 1 :(得分:0)

回过头来看,这里的一些内容是我用来匹配模式的东西。通配符和。将是你的门票。 http://ss64.com/ps/syntax-regex.html

答案 2 :(得分:0)

您可以使用Regex对象执行此类搜索。这是什么样的:

$inFile = get-content c:\temp\test.txt
$matchedLines = New-Object -TypeName System.collections.ArrayList

foreach ($line in $inFile)
{
    $match = [regex]::Match($line, '(?i).*regional.*new york.*|(?i).*new york.*regional.*')
    if ($match.Success -eq $true)
    {
        $matchedLines.Add($match)
    }
}

Write-Output $matchedLines.Value