2016-10-24 11 views
1
dir C:\dev\ve1 -Include *.scala -Recurse | 
    Select-String -Pattern "ValidSite" -SimpleMatch -CaseSensitive 

이 작업은 정상적으로 작동하지만 전체 단어는이지만 줄 수는 ValidSiteId입니다.전체 단어 만 검색하고 존재하지 않아야합니까?

그리고 라인 에는 'ValidSite'가 포함되어야하고 '케이스'라는 단어는 포함되지 않아야합니다..

나는 모든 옵션을 Select-String으로 생각했지만 여러 가지 방법을 시도했지만 운이 없었습니다.

답변

1

경기 : 그것은 완벽하게 작동

Get-ChildItem C:\dev\ve1 -Include *.scala -Recurse | 
    Select-String -Pattern "\bValidSite\b" -CaseSensitive | 
    Select-String -Pattern "\bCase\b" -NotMatch -CaseSensitive 
+0

. 고마워요 ** Ansgar Wiechers **. – Sun

1

당신은 정규 표현식에보고해야한다 :

dir C:\dev\ve1 -Include *.scala -Recurse | Select-String '^(?!.*case).*ValidSite .*$' 

^. ... *ValidSite .*$ 충분히 명확해야한다. 첫 번째 부분 인 (?!.*case)은 음수의 미리보기입니다. 문자열을 일치시키기 전에 문자열에 "case"(앞에 여러 문자가 있음)가 포함되어 있지 않은지 확인합니다. 당신의 부정적인 상태에 다른 Select-String을 통해 단어 경계 (\b) 및 파이프 결과에