2016-08-23 66 views
0

我目前正在嘗試在一個相當大的文本文檔中搜索多個關鍵字,例如:我需要搜索區域和紐約是否出現在一個句子中。目前的腳本我只給了我一個或另一個,但不是兩個。在一個句子中查找多個關鍵字

我現在的腳本是:

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

有什麼想法?

+0

您可以使用多個子句一個'凡-Object'過濾器:'位置對象{$ _ -match「富」 - 和$ _ -match「酒吧」} '。但是,除非您的輸入文件在單行中包含每個句子,否則當它們在同一個句子中時,將不能匹配這些詞語,但在不同的行上。 –

回答

0

這裏是如何得到的結果的多模式:

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

從本質上講,這看起來任何東西,其中兩個詞組出現在任何順序在同一行。

0

您可以使用正則表達式對象來執行此類搜索。這裏是什麼樣子:

$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 
相關問題