Monday, September 25, 2006
윈도우 도스창에서 정규식 사용법 - Windows XP regex FINDSTR
윈도우2000이나 윈도우XP에는 findstr 이라는 명령어가 있습니다. 이것으로 정규식을 사용하여 파일 속의 문자열을 찾을 수 있습니다. 즉 윈도우용 grep 인 것입니다. (▶▶ [grep.exe] 유닉스/리눅스의 grep 을 윈도우에서 사용하기: 문자열 찾기 참조)
윈도우의 도스창(윈도에서의 정식명칭은, 명령 프롬프트)을 열고,
findstr foo *
라고 하면, 현재 디렉토리의 모든 문서에서, foo 라는 문자열이 들어 있는 문서를 찾아서 그 행을 보여 줍니다. 이것은 일반 문자열 찾기이고, 정규식을 사용하려면 가령
findstr \^foo$ *
이것은 ^foo$ 라는 정규식을 사용한 예입니다. 정규식에서 ^ 은 행의 처음, $는 행의 마지막을 의미하기에, ^foo$ 의 의미는, foo 로만 이루어진 행을 찾으라는 뜻이 됩니다. 그렇지만 윈도우에서 ^ 이런 캐럿 기호는 특수한 의미로 사용되는 문자이기에, ^ 앞에 백슬래쉬(\)를 붙여서 이스케이프해 주었습니다.
만약
<foo>
라는 문자열을 찾으려면
findstr ^<foo^> *
이렇게 이스케이프해 주어야 합니다. 도스창에서 <> 기호는 재지향에 사용되는 특수기호이기 때문입니다.
실은 도스창의 이스케이프 기호가 바로 ^ 입니다.
정규식은, 도스창에서 파일 속의 문자열 찾기에만 쓰이는 것이 아니라, 텍스트 에디터에서 문자열 찾기와 치환에 더 널리 사용됩니다.
▶▶ [윈도우용 grep] find 보다 더 강력한 findstr 명령
윈도우의 도스창(윈도에서의 정식명칭은, 명령 프롬프트)을 열고,
findstr foo *
라고 하면, 현재 디렉토리의 모든 문서에서, foo 라는 문자열이 들어 있는 문서를 찾아서 그 행을 보여 줍니다. 이것은 일반 문자열 찾기이고, 정규식을 사용하려면 가령
findstr \^foo$ *
이것은 ^foo$ 라는 정규식을 사용한 예입니다. 정규식에서 ^ 은 행의 처음, $는 행의 마지막을 의미하기에, ^foo$ 의 의미는, foo 로만 이루어진 행을 찾으라는 뜻이 됩니다. 그렇지만 윈도우에서 ^ 이런 캐럿 기호는 특수한 의미로 사용되는 문자이기에, ^ 앞에 백슬래쉬(\)를 붙여서 이스케이프해 주었습니다.
만약
<foo>
라는 문자열을 찾으려면
findstr ^<foo^> *
이렇게 이스케이프해 주어야 합니다. 도스창에서 <> 기호는 재지향에 사용되는 특수기호이기 때문입니다.
실은 도스창의 이스케이프 기호가 바로 ^ 입니다.
정규식은, 도스창에서 파일 속의 문자열 찾기에만 쓰이는 것이 아니라, 텍스트 에디터에서 문자열 찾기와 치환에 더 널리 사용됩니다.
▶▶ [윈도우용 grep] find 보다 더 강력한 findstr 명령
tag: regex
정규식 | 정규표현식 | Regex | Regular Expression
tag: batch
배치파일 | DOS CMD BATCH .BAT
<< Home