Findstr: 이 편리한 CMD Windows 도구를 사용하는 예제 및 팁

초보자에게는 findstr과 같은 패턴 검색 도구가 쓸모없어 보일 수 있습니다. 그러나 수백 줄의 텍스트가 포함된 시스템 생성 로그 파일 또는 명령줄 출력을 처리할 때 findstr은 필요한 도구일 뿐입니다.

Linux 운영 체제 사용자는 Grep 명령 의 놀라운 유틸리티에 이미 익숙할 것이며 findstr은 Microsoft Windows 에서 유사한 역할을 수행합니다 . 파이프를 사용하여 다른 명령(other commands) 과 결합 하거나 직접 실행하여 여러 텍스트 파일을 구문 분석할 수 있습니다. 몇 가지 예를 들어 findstr이 어떻게 작동하는지 살펴보겠습니다.

Findstr 명령 사용

기본 구문은 간단합니다 – findstr , 어디검색할 패턴이며검색할 파일의 주소입니다. 명령 프롬프트(Command Prompt) 를 열고 시도해 보십시오.

findstr SFC example1.txt

이 명령은 검색 문자열 SFC 를 포함하는 모든 행을 찾아 출력합니다 . 기본적으로 findstr은 대소문자를 구분하므로 SFC 에 대한 언급은 일치하지 않습니다.

매개변수

선택적 매개변수를 포함하여 findstr의 작동 방식을 추가로 사용자 정의할 수 있습니다. /B 또는 /I와 같은 스위치는 findstr의 동작을 수정하여 검색에 추가 조건을 부과합니다. 예를 들어:

findstr /I SFC example1.txt

/I를 매개변수로 포함하면 검색의 대소문자를 구분하지 않으므로 대소문자에 관계없이 해당 용어의 모든 언급이 일치할 수 있습니다. 공식 Microsoft 문서(official Microsoft docs) 에서 findstr의 모든 매개변수 목록을 찾을 수 있습니다 .

선택적 패턴

매개변수는 findstr을 사용자 정의할 수 있는 유일한 방법이 아닙니다. 예를 들어, <string>을 따옴표로 묶으면 여러 패턴을 지정할 수 있으므로 텍스트 문자열이 발견되면 일치를 제공합니다.

findstr "SFC DISM" example1.txt

위의 조건 중 하나를 포함하는 일치하는 줄을 반환합니다. 이것은 다른 이름을 가진 항목에 대한 언급을 찾을 때 유용합니다.

정규식

Findstr 은 여러 파일을 검색할 수 있습니다. 바꾸다정규식에 대한 명령은 일치하는 모든 파일에서 지정된 패턴을 찾습니다.

findstr SFC *.txt

와일드카드 문자를 사용하면 정규식을 현재 디렉터리 및 해당 하위 디렉터리의 모든 텍스트 파일과 일치시킵니다. 결과는 마찬가지로 파일 이름으로 분리되어 어떤 라인이 어떤 파일에서 유래했는지 확인할 수 있습니다.

파이프

대부분의 cmd 명령과 마찬가지로 findstr은 다른 명령의 출력에도 사용할 수 있습니다. 대상 명령 끝에 파이프를 추가하고 findstr을 호출하지 않고(Just).

dir | findstr .txt

이것은 dir 명령의 출력에서 ​​findstr 검색을 실행하여 .txt 로 끝나는 파일 목록을 반환합니다 . 물론 이 특정 예제는 dir이 이미 정규 표현식으로 동일한 유형의 파일을 찾을 수 있기 때문에 실제로는 쓸모가 없습니다.

출력을 텍스트 파일로 리디렉션한(redirecting the output to a text file) 다음 텍스트 파일에서 findstr을 사용 하는 더 긴 경로를 사용할 수도 있지만 중개자를 자르는 것이 더 쉽습니다.

Windows에서 Findstr의 응용 프로그램

findstr의 명백한 용도는 구문만으로도 쉽게 알 수 있습니다. 특정 텍스트 문자열이 있는 텍스트 파일을 찾거나 특정 문자열이 파일에 포함되어 있는지 확인할 수 있습니다.

이것은 이론적으로 유용하지만 드문 경우를 제외하고는 거의 사용되지 않습니다. Google Docs 와 같은 클라우드 서비스 시대에 대부분의 사람들은 더 이상 많은 텍스트 파일을 보유하지 않습니다.

findstr의 실제 적용은 조금 더 미묘하고 더 강력한 결과를 수반합니다. 다음은 더 흥미로운 몇 가지 예입니다.

특정 유형의 파일 찾기

dir 명령에는 정규 표현식을 사용하여 파일 이름을 검색하는 옵션이 이미 포함되어 있습니다. 그러나 findstr을 사용하면 생성 시간이나 날짜와 같은 다른 속성을 공유하는 파일을 검색할 수 있습니다.

(Suppose)오후 6시 43분에 오류가 발생했고 그 시간에 생성된 모든 로그 파일을 찾으려고 가정 합니다. dir 명령만 사용하면 결과를 수동으로 선별하거나 모든 로그 파일을 가져와서 비교해야 합니다. findstr을 사용하면 간단한 명령이 됩니다.

dir | findstr 06:43

동일한 트릭을 시도하여 특정 날짜에 생성된 파일을 찾거나 디렉토리 목록을 얻을 수 있습니다.

dir | findstr DIR

Netstat네트워크 정보(Network Information) 필터링

Netstat 는 컴퓨터의 네트워크 연결에 대한 모든 정보를 제공 하는 편리한 Windows 명령입니다. 너무 많은 정보는 findstr이 필요한 곳입니다.(Windows)

netstat의 출력을 findstr에 파이핑하면 특정 속성이 있는 연결을 검색할 수 있습니다. 예를 들어 설정된 모든 연결 목록을 얻을 수 있는 방법은 다음과 같습니다.

netstat | findstr ESTABLISHED

이 트릭은 네트워크 문제를 진단할 때 유용합니다. 응용 프로그램 PID(PID) 와 함께 findstr을 사용 하여 특정 프로세스에서 연 모든 연결을 찾을 수도 있습니다.

netstat -o | findstr 13120

특정 IP 주소 얻기

ipconfig 명령을 사용하면 IP 주소를 포함하여 시스템의 모든 네트워크 인터페이스에 대한 세부 정보를 볼 수 있습니다. findstr을 사용하여 전체를 스크롤할 필요 없이 특정 유형의 IP 주소를 추출할 수 있습니다.

ipconfig | findstr Temporary

이 방법을 확장하여 서브넷 마스크에서 게이트웨이 주소에 이르기까지 ipconfig에서 모든 정보를 얻을 수 있습니다.

스크립트 파일 분석

어떤 프로그래밍 언어로 코딩하든 스크립트 파일은 궁극적으로 텍스트일 뿐입니다. 즉, findstr을 사용하여 전체 코드를 조사하지 않고도 스크립트를 분석하고 특정 섹션을 검색할 수 있습니다.

(Say)특정 스크립트에서 if 문이 어떻게 사용되었는지 확인하고 싶다고 가정 해 봅시다. 다음 명령을 사용할 수 있습니다.

findstr if script.ahk

이렇게 하면 if 문을 사용하는 행이 표시될 뿐만 아니라 사용된 표현식도 표시됩니다. /N 매개 변수를 포함하여 줄 번호를 표시할 수도 있습니다. 이는 스크립트 파일에 매우 유용합니다.

findstr /N if script.ahk

Findstr을 사용할 가치가 있습니까?

명령줄 인터페이스를 탐색할 때 가장 큰 어려움은 선별해야 하는 텍스트의 양입니다. Findstr 은 유용한 정보를 추출하고 정크를 필터링하는 데 필수적인 도구입니다.

모든 터미널 명령은 텍스트 기반 출력을 제공하므로 findstr은 항상 관련 데이터를 찾는 데 사용할 수 있습니다. 네트워크 문제 해결(troubleshooting network issues) 에서 올바른 파일 찾기에 이르기까지 findstr을 사용하면 모든 작업이 더 효율적으로 수행됩니다.

다른 명령과의 시너지 효과 외에도 findstr은 텍스트 파일의 내용을 탐색하는 기능에 유용합니다. 시스템 생성 로그 파일에서 특정 오류를 찾거나 복잡한 스크립트에서 코드 섹션을 검색할 수 있습니다.

요컨대, findstr은 고급 Windows 사용자, 특히 명령줄 인터페이스에 익숙해지려는 사용자에게 없어서는 안될 도구입니다.



About the author

저는 이 분야에서 거의 10년의 경험을 가진 소프트웨어 엔지니어이자 블로거입니다. 저는 Mac 및 Windows 플랫폼을 위한 도구 리뷰 및 튜토리얼 제작을 전문으로 할 뿐만 아니라 소프트웨어 개발 주제에 대한 전문가 논평을 제공합니다. 저는 또한 전 세계의 기술 컨퍼런스에서 프레젠테이션을 한 전문 연사이자 강사입니다.



Related posts