2016-08-23 8 views
0

私は現在、かなり大きなテキスト文書で複数のキーワードを検索しようとしています。たとえば、地域とニューヨークが一文で表示されるかどうか検索する必要があります。私が持っている現在のスクリプトは、どちらか一方だけを提供しますが、両方を提供しません。文中に複数のキーワードを見つける

私の現在のスクリプトは次のとおりです。

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

任意の考え?ここで

+0

:ここではどのようなものがあるように見えます'。ただし、入力ファイルに1行の各文が含まれていない限り、同じ文章ではなく異なる行にある用語を一致させることはできません。 –

答えて

0

は、複数のパターンの結果を取得する方法である:

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

は基本的に、これは2つの句は、いずれかの順序で同じ行で発生するものを探します。

0

これを読んで、ここでパターンの一致に使用しているものがあります。ワイルドカードとa。あなたのチケットになります。 http://ss64.com/ps/syntax-regex.html

0

このような検索を行うには、Regexオブジェクトを使用できます。 `どこ-オブジェクト{$ _ -match 'foo' で-and $ _ -match 'バー'}:あなたが複数の節と`どこ-Object`フィルタを使用することができ

$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 
関連する問題