2012-05-01 4 views
1

blog.commandlinekungfu.com의 암호화 스크립트를 기반으로하는 스크립트로 작업하고 있습니다. 필자는 본질적으로 텍스트 파일에있는 모든 문자의 빈도를 얻고 싶습니다. 이 예에서 그는 Here-String을 사용하여 값을 저장하지만 Get-Content를 사용하려고합니다. 여기에 고장이 있습니다.powershell의 .matches가 결과를 반환하지 않습니다.

이 코드는

PS c:\$foobar = @" 
        foo 
        bar 
       "@ 
PS c:\$foobar | Select-String -AllMatches "[A-Z]").matches 

그것은 생성하라 값을 반환 작동합니다. 그러나 정확히 같은 정보가 들어있는 텍스트 파일이 있으면 null 값이 반환됩니다.

PS c:\$text = Get-Content "foobar.txt" 
PS c:\$text | Select-String -AllMatches "[A-Z]").matches 

반환

사람이 왜 여기에 문자열이 일을 알고 있지만은 Get-콘텐츠하지 않습니다

아무것도?

답변

2

여기 문자열은 하나의 문자열로 처리되며 get-content와 함께 문자열 모음을 파이프합니다. 파일 내용을 Out-String cmdlet에 파이프 할 수 있습니다.

(get-content file.txt | out-string | Select-String -AllMatches "[A-Z]").matches 
+0

감사합니다. – Svenxix

관련 문제