Thursday, April 17, 2008
grep 같은 비슷한 윈도우 Window 명령어?
유닉스의 grep 과 유사한 명령어가 윈도우에 있는데, findstr 이라는 좀더 쉬운 이름으로 되어 있습니다. 정규식(정규표현식)도 사용이 가능합니다. 그러나 유닉스 grep처럼 그렇게 강력하지는 않습니다.
윈도우의 일명 도스창(정식명칭은 명령프롬프트; CMD.EXE)에서,
findstr /?
이라고 입력하면 아래와 같은 도움말이 나옵니다.
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
D:\Z>findstr /?
파일에서 문자열을 찾습니다.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:파일][/C:문자열] [/G:파일] [/D:디렉터리 목록] [/A:색 속성] [/OFF[LI
NE]]
문자열 [[드라이브:][경로]파일이름[ ...]]
/B 패턴이 행의 첫부분에 있는지를 비교합니다.
/E 패턴이 행의 끝부분에 있는지를 비교합니다.
/L 찾는 문자열을 글자 그대로 사용합니다.
/R 찾는 문자열을 정규식으로 사용합니다.
/S 현재 디렉터리와 모든 하위 디렉터리에서 일치하는 파일을 찾습니다.
/I 찾을 때 대/소문자를 구별하지 않습니다.
/X 정확히 일치하는 줄만 보여줍니다.
/V 일치하는 텍스트가 없는 줄만 보여줍니다.
/N 일치하는 각 줄 앞에 줄 번호를 보여줍니다.
/M 파일에 일치하는 텍스트가 있으면 파일 이름만 보여줍니다.
/O 일치하는 각 줄 앞에 문자 오프셋을 보여줍니다.
/P 인쇄할 수 없는 텍스트가 포함된 파일은 건너 뜁니다.
/OFF[LINE] 오프라인 속성 세트 파일을 건너뛰지 않습니다.
/A:속성 색 속성을 두자리 16진수로 지정합니다. "color /?"를 참조하십시오.
/F:파일 지정된 파일에서 파일 목록을 읽습니다('/'는 콘솔에 해당됩니다).
/C:문자열 지정된 텍스트를 글자 그대로 찾는 문자열로 사용합니다.
/G:파일 지정된 파일로부터 찾는 텍스트를 받습니다('/'는 콘솔에 해당됩니다).
/D:디렉터리 디렉터리 목록을 구분하는 세미콜론(;)를 찾습니다.
문자열 찾을 텍스트.
[드라이브:][경로]파일이름
찾을 파일을 지정합니다.
/C 옵션을 사용한 경우가 아니면, 찾는 문자열을 여러 개 지정할 때
공백으로 분리하십시오. 예를 들면, 'FINDSTR "hello there" x.y' 명령을
입력하면 파일 x.y에서 "hello"나 "there"을 찾습니다.
반면에 'FINDSTR /C:"hello there" x.y' 명령을 입력하면 파일 x.y에서
"hello there"을 찾습니다.
정규식에 대한 참고 사항:
. 와일드카드: 모든 문자
* 반복: 문자나 클래스에 대하여 0번 이상 반복
^ 행 위치: 행의 앞부분
$ 행 위치: 행의 끝부분
[클래스] 문자 클래스: 세트에 있는 문자
[^클래스] 역 클래스: 세트에 없는 문자
[x-y] 범위: 특정 범위에 있는 문자
\x 익스케이프: 메타 문자 x를 문자 그대로 사용
\<xyz 단어 위치: 단어의 앞부분
xyz\> 단어 위치: 단어의 끝부분
Findstr에서 사용 가능한 정규식은 온라인 명령을 참조하십시오.
D:\Z>
사용법도 그렙과 비슷합니다. 예를 들어, 현재디렉토리에 있는 모든 txt 확장자를 가진 텍스트 파일들 속에서 apple 이라는 단어를 대소문자 구분없이 찾으려면
findstr /i apple *.txt
이렇게 하면 됩니다.
모든 파일(*.*)에서, 아라비아 숫자로만 이루어져 있는 행들을 찾으려면
findstr ^[0-9]$ *.*
이렇게 정규식을 사용합니다.
윈도우의 일명 도스창(정식명칭은 명령프롬프트; CMD.EXE)에서,
findstr /?
이라고 입력하면 아래와 같은 도움말이 나옵니다.
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
D:\Z>findstr /?
파일에서 문자열을 찾습니다.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:파일][/C:문자열] [/G:파일] [/D:디렉터리 목록] [/A:색 속성] [/OFF[LI
NE]]
문자열 [[드라이브:][경로]파일이름[ ...]]
/B 패턴이 행의 첫부분에 있는지를 비교합니다.
/E 패턴이 행의 끝부분에 있는지를 비교합니다.
/L 찾는 문자열을 글자 그대로 사용합니다.
/R 찾는 문자열을 정규식으로 사용합니다.
/S 현재 디렉터리와 모든 하위 디렉터리에서 일치하는 파일을 찾습니다.
/I 찾을 때 대/소문자를 구별하지 않습니다.
/X 정확히 일치하는 줄만 보여줍니다.
/V 일치하는 텍스트가 없는 줄만 보여줍니다.
/N 일치하는 각 줄 앞에 줄 번호를 보여줍니다.
/M 파일에 일치하는 텍스트가 있으면 파일 이름만 보여줍니다.
/O 일치하는 각 줄 앞에 문자 오프셋을 보여줍니다.
/P 인쇄할 수 없는 텍스트가 포함된 파일은 건너 뜁니다.
/OFF[LINE] 오프라인 속성 세트 파일을 건너뛰지 않습니다.
/A:속성 색 속성을 두자리 16진수로 지정합니다. "color /?"를 참조하십시오.
/F:파일 지정된 파일에서 파일 목록을 읽습니다('/'는 콘솔에 해당됩니다).
/C:문자열 지정된 텍스트를 글자 그대로 찾는 문자열로 사용합니다.
/G:파일 지정된 파일로부터 찾는 텍스트를 받습니다('/'는 콘솔에 해당됩니다).
/D:디렉터리 디렉터리 목록을 구분하는 세미콜론(;)를 찾습니다.
문자열 찾을 텍스트.
[드라이브:][경로]파일이름
찾을 파일을 지정합니다.
/C 옵션을 사용한 경우가 아니면, 찾는 문자열을 여러 개 지정할 때
공백으로 분리하십시오. 예를 들면, 'FINDSTR "hello there" x.y' 명령을
입력하면 파일 x.y에서 "hello"나 "there"을 찾습니다.
반면에 'FINDSTR /C:"hello there" x.y' 명령을 입력하면 파일 x.y에서
"hello there"을 찾습니다.
정규식에 대한 참고 사항:
. 와일드카드: 모든 문자
* 반복: 문자나 클래스에 대하여 0번 이상 반복
^ 행 위치: 행의 앞부분
$ 행 위치: 행의 끝부분
[클래스] 문자 클래스: 세트에 있는 문자
[^클래스] 역 클래스: 세트에 없는 문자
[x-y] 범위: 특정 범위에 있는 문자
\x 익스케이프: 메타 문자 x를 문자 그대로 사용
\<xyz 단어 위치: 단어의 앞부분
xyz\> 단어 위치: 단어의 끝부분
Findstr에서 사용 가능한 정규식은 온라인 명령을 참조하십시오.
D:\Z>
사용법도 그렙과 비슷합니다. 예를 들어, 현재디렉토리에 있는 모든 txt 확장자를 가진 텍스트 파일들 속에서 apple 이라는 단어를 대소문자 구분없이 찾으려면
findstr /i apple *.txt
이렇게 하면 됩니다.
모든 파일(*.*)에서, 아라비아 숫자로만 이루어져 있는 행들을 찾으려면
findstr ^[0-9]$ *.*
이렇게 정규식을 사용합니다.
tag: windows
윈도우 | Windows 7 | Windows XP | Windows 2000
tag: regex
정규식 | 정규표현식 | Regex | Regular Expression
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home