2016-08-23 2 views
0

저는 현재 다소 큰 텍스트 문서에서 여러 키워드를 검색하려고합니다. 지역 및 뉴욕이 한 문장으로 표시되어야합니다. 현재 스크립트는 하나 또는 다른 하나만 제공하지만 둘 다 제공하지는 않습니다.한 문장에 여러 개의 키워드 찾기

내 현재 스크립트는 다음과 같습니다

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

어떤 생각? 여기

+0

: 여기처럼 그 모양 것 인 것이다 '. 그러나 입력 파일의 문장이 한 줄에 포함되어 있지 않으면 같은 문장이지만 다른 줄에있는 단어와 일치시킬 수 없습니다. –

답변

0

여러 패턴에 대한 결과를 얻는 방법이다 :

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

는 기본적으로이 두 문구 중 하나 순서로 같은 라인에서 발생하는 것을 찾습니다.

0

Regex 개체를 사용하여 이러한 검색을 수행 할 수 있습니다. `어디-오브젝트 {$ _ -match 'foo는'- 그리고 $ _ -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