
Windows NT는 문자열이나 정규식을 검색하는
findstr를 지원한다.
findstr [/b] [/e] [/l] [/c:string] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o]
[/g:file] [/f:file] strings files
| 변수 |
의미 |
| /b
| 패턴이 줄의 시작에 있는지를 비교한다
|
| /e
| 패턴이 줄의 끝에 있는지를 비교한다.
|
| /l
| 검색 문자열을 글자 그대로 사용한다.
|
| /c
| 지정된 텍스트를 글자 그대로 검색 문자열로 사용한다. /c:"string"
|
| /r
| 검색 문자열을 정규 표현식으로 사용한다. 이 스위치는 필요 없다. /l 스위치를 사용하지 않으면 findstr은 모든 메타 문자를 정규 표현식으로 번역한다
|
| /s
| 현재 디렉토리와 모든 하위 디렉토리에서 일치하는 파일을 찾는다.
|
| /i
| 검색을 할 때 대/소문자를 구별하지 않는다.
|
| /x
| 정확하게 일치하는 줄을 인쇄한다.
|
| /v
| 일치하는 텍스트가 없는 줄만 인쇄한다.
|
| /n
| 일치하는 각 줄 앞에 줄 번호를 인쇄한다.
|
| /m
| 파일에 일치하는 텍스트가 있으면 파일 이름만 인쇄한다.
|
| /o
| 일치하는 각 줄 앞에 검색 옵셋을 인쇄한다.
|
| /g
| 지정된 파일에서 검색 텍스트를 받는다. /g:argument.txt
|
| /f
| 지정된 파일에서 파일 목록을 읽는다.
|
| strings
| 찾을 문자열
|
| files
| 찾을 파일
|
/c를 사용하는 경우를 제외하고 다중 검색의 분리자로 공백을 사용한다. 예:
findstr "Windows NT" document.txt는 document.txt 파일내에서 "Window"나 "NT"를 검색한다.
findstr /c:"Windows NT" document.txt는 document.txt 파일내에서 "Windows NT"를 검색한다.
Findstr은 ASCII 파일이나 다른 파일에서 정확한 텍스트를 찾을 수 있다. 그러나, 찾을 텍스트를 일부분밖에 모르거나 더 넓은 범위의 정보를 찾을 경우, findstr은 정규 표현식을 사용하여 텍스트의 패턴을 찾는 더욱 강력한 기능을 발휘한다.
정규 표현식은 문자의 정확한 텍스트가 아닌 텍스트의 지정 패턴을 표시하기 위한 것이다. 이 표현에는 글자 그대로의 문자와 메타 문자를 사용한다. 정규 표현식 구문에서 특별한 의미를 갖는 문자가 아닌 모든 문자는 글자 그대로의 문자이고 그 문자가 나타나면 대응된다. 예를 들어, 알파벳 문자와 숫자는 글자 그대로의 문자이다. 메타 문자란 정규 표현식 구문에서 특별한 의미를 갖는 기호(연산자나 딜리미터)를 말한다. 아래는 findstr이 받아들이는 메타 문자의 목록이다.
| . |
대표문자: 모든 문자
|
| * |
반복: 바로 전 문자나 클래스가 0번 이상 나타남
|
| ^ |
줄 위치: 줄의 시작
|
| $ |
줄 위치: 줄의 끝
|
| [class] |
문자 클래스: 집합에 포함되는 글자 중 어느 것이든 하나
|
| [^class] |
역클래스: 집합에 포함되지 않는 글자 중 어느 것이든 하나
|
| [a-z] |
범위: 지정된 범위에 포함되는 문자 또는 여러 개의 문자
|
| \x |
이스케이프: 메타 문자 x를 글자 그대로 사용
|
| \
| 단어 위치: 단어의 시작
|
| abc\ |
단어 위치: 단어의 끝
|
예:
W로 시작해서 ws로 끝나는 모든 것을 찾기위해:
findstr "W.*ws" document.txt
Window를 찾기위해:
findstr Window document.txt
c:\WinNT와 딸림 디렉토리에서 대소문자를 구분하지 않고 Window를 찾기위해:
findstr /s /i Window c:\WinNT\*.*
파일 목록내에 여러문자열을 찾기위해:
findstr /g:argument.txt /f:files.txt
Hilynx를 포함하는 C: 드라이브의 파일목록을 얻기위해:
findstr /s /m "\" C:\*.*
Win으로 시작하는 단어를 포함하는 모든 파일을 현재 디렉토리에서 찾기위해:
findstr /m "\