초보자에게는 findstr과 같은 패턴 검색 도구가 쓸모없어 보일 수 있습니다. 하지만 수백 줄의 텍스트가 포함된 시스템 생성 로그 파일이나 명령줄 출력을 처리할 때 findstr은 꼭 필요한 도구입니다.
Linux 운영 체제 사용자는 이미 Grep 명령의 놀라운 유틸리티에 익숙할 것이며 findstr은 Microsoft Windows에서 유사한 역할을 수행합니다. 파이프를 사용하여 다른 명령 과 결합하거나 직접 실행하여 여러 텍스트 파일을 통해 구문 분석할 수 있습니다. 몇 가지 예를 통해 findstr이 어떻게 작동하는지 살펴보겠습니다.
Findstr 명령 사용
기본 구문은 간단합니다. findstr
findstr SFC example1.txt
이 명령은 검색 문자열 SFC가 포함된 모든 행을 찾아서 출력합니다. 기본적으로 findstr은 대소문자를 구분하므로 SFC에 대한 언급은 일치하지 않습니다.
매개변수
선택적 매개변수를 포함하여 findstr의 작동 방식을 추가로 맞춤설정할 수 있습니다. /B 또는 /I와 같은 스위치는 findstr의 동작을 수정하여 검색에 추가 조건을 적용합니다. 예:
findstr /I SFC example1.txt
/I를 매개변수로 포함하면 검색 시 대소문자를 구분하지 않으므로 대문자 사용에 관계없이 해당 용어가 언급된 모든 항목이 일치할 수 있습니다. 공식 Microsoft 문서 에서 findstr의 모든 매개변수 목록을 찾을 수 있습니다.
선택적 패턴
매개변수가 findstr을 맞춤설정할 수 있는 유일한 방법은 아닙니다. 예를 들어
findstr “SFC DISM” example1.txt
위의 명령은 두 용어 중 하나를 포함하는 일치하는 행을 반환합니다. 이는 다른 이름을 가진 항목에 대한 언급을 찾을 때 유용합니다.
정규 표현식
Findstr은 여러 파일을 검색할 수 있습니다.
findstr SFC *.txt
와일드카드 문자를 사용하면 정규식을 현재 디렉터리 및 하위 디렉터리의 모든 텍스트 파일과 일치시킵니다. 결과는 마찬가지로 파일 이름으로 구분되므로 어떤 줄이 어떤 파일에서 유래했는지 확인할 수 있습니다.
파이프
대부분의 cmd 명령과 마찬가지로 findstr도 다른 명령의 출력에 사용할 수 있습니다. 대상 명령 끝에 파이프를 추가하고
디렉터리 | findstr .txt
이것은 dir 명령의 출력에 대해 findstr 검색을 실행하여 .txt로 끝나는 파일 목록을 반환합니다. 물론 이 특정 예는 dir이 이미 정규식을 사용하여 동일한 유형의 파일을 찾을 수 있기 때문에 실제로는 쓸모가 없습니다.
출력을 텍스트 파일로 리디렉션 라는 더 긴 경로를 선택한 다음 텍스트 파일에서 findstr을 사용할 수도 있지만 중개자를 잘라내는 것이 더 쉽습니다.
Windows의 Findstr 응용
findstr의 명백한 용도는 구문만으로도 쉽게 알 수 있습니다. 특정 텍스트 문자열이 포함된 텍스트 파일을 찾거나 특정 문자열이 파일에 포함되어 있는지 확인할 수 있습니다.
이는 이론적으로는 유용하지만 드문 경우 외에는 거의 사용되지 않습니다. Google Docs와 같은 클라우드 서비스 시대에 대부분의 사람들은 더 이상 많은 텍스트 파일을 갖고 있지 않습니다.
findstr의 실제 적용은 좀 더 미묘하고 더 강력한 결과를 포함합니다. 다음은 좀 더 흥미로운 예입니다.
특정 파일 유형 찾기
dir 명령에는 정규식을 사용하여 파일 이름을 검색하는 옵션이 이미 포함되어 있습니다. 하지만 findstr을 사용하면 생성 시간이나 날짜 등 다른 속성을 공유하는 파일을 검색할 수 있습니다.
오후 6시 43분에 오류가 발생했고 해당 시간에 생성된 모든 로그 파일을 찾으려고 한다고 가정합니다. dir 명령만 사용하면 결과를 수동으로 선별하거나 모든 로그 파일을 가져와 비교해야 합니다. findstr을 사용하면 간단한 명령이 됩니다.
디렉터리 | findstr 06:43
동일한 방법을 사용하여 특정 날짜에 생성된 파일을 찾거나 디렉터리 목록을 얻을 수 있습니다.
디렉터리 | findstr 디렉토리
Netstat로 네트워크 정보 필터링.
Netstat 은 컴퓨터의 네트워크 연결에 대한 모든 정보를 제공하는 편리한 Windows 명령입니다. findstr이 필요한 정보가 너무 많습니다.
netstat의 출력을 findstr로 파이프하면 특정 속성이 있는 연결을 검색할 수 있습니다. 예를 들어, 설정된 모든 연결 목록을 얻는 방법은 다음과 같습니다.
netstat | findstr 설정됨
이 방법은 네트워크 문제를 진단할 때 유용합니다. 특정 프로세스에 의해 열린 모든 연결을 찾기 위해 애플리케이션 PID와 함께 findstr을 사용할 수도 있습니다.
netstat -o | findstr 13120
특정 IP 주소 얻기
ipconfig 명령을 사용하면 IP 주소를 포함하여 시스템의 모든 네트워크 인터페이스에 대한 세부 정보를 볼 수 있습니다. findstr을 사용하면 전체를 스크롤할 필요 없이 특정 유형의 IP 주소를 추출할 수 있습니다.
ipconfig | findstr 임시
이 방법을 확장하여 ipconfig에서 서브넷 마스크부터 게이트웨이 주소까지 모든 정보를 얻을 수 있습니다.
스크립트 파일 분석
어떤 프로그래밍 언어로 코딩하든 스크립트 파일은 궁극적으로 텍스트일 뿐입니다. 이는 findstr을 사용하여 전체 코드를 샅샅이 조사하지 않고도 스크립트를 분석하고 특정 섹션을 검색할 수 있음을 의미합니다.
특정 스크립트에서 if 문이 어떻게 사용되었는지 보고 싶다고 가정해 보겠습니다. 다음 명령을 사용할 수 있습니다:
script.ahk인 경우 findstr
이것은 if 문을 사용하는 행을 표시할 뿐만 아니라 사용된 표현식도 표시합니다. /N 매개변수를 포함하여 줄 번호를 표시할 수도 있는데, 이는 스크립트 파일에 매우 편리합니다.
findstr /N if script.ahk
Findstr을 사용할 가치가 있나요?
명령줄 인터페이스를 탐색할 때 가장 어려운 점은 선별해야 하는 텍스트의 양입니다. Findstr은 유용한 정보를 추출하고 정크를 필터링하는 데 필수적인 도구입니다.
모든 터미널 명령은 텍스트 기반 출력을 제공하므로 findstr을 사용하여 항상 관련 데이터를 찾을 수 있습니다. 네트워크 문제 해결 부터 올바른 파일 찾기까지 findstr을 사용하면 모든 작업이 더욱 효율적으로 이루어집니다..
다른 명령과의 시너지 효과 외에도 findstr은 텍스트 파일의 내용을 탐색하는 기능에 유용합니다. 기계 생성 로그 파일에서 특정 오류를 찾거나 복잡한 스크립트에서 코드 섹션을 검색할 수 있습니다.
간단히 말해서, findstr은 고급 Windows 사용자, 특히 명령줄 인터페이스에 익숙해지려는 사용자에게 없어서는 안 될 도구입니다.
.