2017-04-24 2 views
1

내 하드 디스크에서 전자 메일 주소를 검색하려고합니다. 나는 그것이 같은 것을해야한다고 알고Windows에서 정규식을 사용하여 현재 드라이브의 모든 파일에서 문자열 검색

b************[email protected]******.com

을이 나는 이유는 이 정규식 함께했다 :

b.{12}[email protected]{6}.com

나는 findstr이 작업에 유용 할 수 있음을 발견하고 시도 :

,
findstr /R b.{12}[email protected]{6}\.com c:\*.* 

하지만 난 내의 정규식과 일치해야합니다 이메일로 파일을 추가해도 아무것도 찾을 수없는, 예를 들어이 하나 [email protected]

답변

0

당신은 대신 다음 PowerShell 명령과 함께이 일을 시도 할 수 (이 실행하는 데 시간이 오래 걸릴 수 있습니다 시작 위치에 따라 주) :

Get-ChildItem *.txt -Recurse -File | Where-Object { (Get-Content $_.FullName) -match "b.{12}[email protected]{6}.com" } 

당신은 당신이 액세스 권한이없는 디스크의 영역에 대한 빨간색 오류 메시지를 받게됩니다. 가능한 가장 넓은 검색을 위해 PowerShell을 관리자로 실행하십시오.

그렇지 않으면 당신이 현재 디렉토리에서 시작, 당신이 원하는 경우 기본 디렉토리를 설정하기 위해-ChildItem을 얻을 수있는 파일 경로를 추가 매개 변수의

설명 :.

  • -Recurse은 현재 디렉토리와 모든 하위 디렉토리를 검색합니다.
  • -File은 파일 만 반환합니다 (디렉토리가 아님).
  • Get-Content $_.FullName은 각 파일의 내용을 가져옵니다.
  • -match은 정규식 비교를 수행합니다.
+0

아니요, 파일 안에 있습니다! 나는 그것이 명백하다고 생각하면서 이것을 지적하지 못해 죄송합니다. 그래서 이메일 주소가 e .txt 파일 안에있을 가능성이 높습니다.하지만 모든 파일을 찾으려고합니다. – asknomore

+0

죄송합니다. 잊어 버렸습니다. 나는 파일의 내용을 검색 할 답을 고쳐 썼다. –

+0

나는 당신의 솔루션을 시험해 보았고 단지 루트 hdd를 검색 할 때 CPU가 95 %에 이르렀고 powershell은 많은 메모리를 소비합니다. 1.5Gb 미만의 공간에서 15Gb를 생성하기 시작했습니다. * .txt 파일 만 검색하는 방법? – asknomore

0

정규식이 있고 정규식이 있습니다. findstr이 그렇게 강력하지 않은 것 같습니다.

findstr /R "[email protected]\.com" *.* 

이것은 findstr 부분에서만 작동합니다.
적절한주의 사항 (예 : 읽을 수있는 파일 만 포함 된 디렉토리 안에 있습니다.

+0

c : \에서 실행하면 FINDSTR : hiberfil.sys를 열 수 없습니다. FINDSTR : pagefile.sys를 열 수 없습니다. FINDSTR : swapfile.sys를 열 수 없으면 중지되어 모든 하위 디렉터리에서 찾을 수 없습니다. – asknomore

+0

@asknomore 사실, 힌트를 주셔서 감사합니다. – Yunnosch

관련 문제