초보자에게는 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 사용자, 특히 명령줄 인터페이스에 익숙해지려는 사용자에게 없어서는 안될 도구입니다.
Findstr: Examples and Tips Using This Handy CMD Windows Tool
Fоr the uninitiatеd, a pattern ѕearching tool like findstr may seem useless. But when dealing with system-generated log files or command line outputs containing hundreds of lines of tеxt, findstr is just the toоl you need.
Users of a Linux operating system would be already familiar with the incredible utility of the Grep command, and findstr fulfills a similar role in Microsoft Windows. You can combine it with other commands using pipes or just run it directly to parse through multiple text files. Let’s look at how findstr works with a few examples.
Using the Findstr Command
The basic syntax is simple – findstr <string> <filepath>, where <string> is the pattern to search for, and <filepath> is the address of the file to search in. Open Command Prompt and give it a try.
findstr SFC example1.txt
This command will find and output all lines containing the search string SFC. Note that by default, findstr is case-sensitive, so any mentions of SFC will not be matched.
Parameters
You can further customize how findstr works by including optional parameters. Switches like /B or /I modify the behavior of findstr, imposing additional conditions on the search. For example:
findstr /I SFC example1.txt
Including /I as a parameter makes the search case insensitive, allowing all mentions of the term to match, regardless of their capitalization. You can find the list of all parameters of findstr in the official Microsoft docs.
Optional Patterns
Parameters aren’t the only way you can customize findstr. Enclosing the <string> in quotes, for example, allows you to specify multiple patterns, giving you a match if any of the text strings are found.
findstr “SFC DISM” example1.txt
The above will return matching lines containing either of the terms. This makes it useful when looking for a mention for an item with different names.
Regular Expressions
Findstr is capable of searching through multiple files. Changing <filepath> to a regular expression makes the command look for the specified pattern in all files that match.
findstr SFC *.txt
Using the wildcard character matches the regex to all text files in the current directory and its subdirectories. The results are likewise segregated by filenames, letting you see which line originated from which file.
Pipes
Like most cmd commands, findstr can also be used on the output of other commands. Just add a pipe after the end of the target command and invoke findstr without a <filepath>.
dir | findstr .txt
This runs a findstr search on the output of the dir command, returning the file list ending with .txt. Of course, this particular example is useless in practice since dir can already locate files of the same type with a regular expression.
One can also take the longer route of redirecting the output to a text file and then using findstr on the text file, but it is easier to cut the middleman.
Applications of Findstr in Windows
The obvious uses of findstr are readily apparent from the syntax alone. You can look for text files with a specific text string or see if a particular string is contained in a file.
This, while theoretically useful, rarely sees use outside of rare cases. In the age of cloud services like Google Docs, most people no longer have many text files.
The actual applications of findstr are a bit more subtle and involve more powerful results. Here are some of the more interesting examples.
Finding Specific Types of Files
The dir command already includes the option to search for filenames using regular expressions. But with findstr, you can search for files sharing other attributes, such as the time or date of creation.
Suppose an error occurred at 06:43 PM, and you want to locate all log files created at that time. With the dir command alone, you will have to manually sift through the results or get all the log files and compare them. Using findstr, this becomes a simple command.
dir | findstr 06:43
You can try the same trick to find files created on a particular date or get a list of directories.
dir | findstr DIR
Filtering Network Information With Netstat
Netstat is a handy Windows command that gives you all the information about your computer’s network connections—too much information, which is where findstr comes in.
Piping netstat’s output into findstr lets you search for connections with specific properties. For example, this is how you can get a list of all established connections.
netstat | findstr ESTABLISHED
This trick is useful when diagnosing network issues. You can even use findstr with an application PID to find all connections opened by a particular process.
netstat -o | findstr 13120
Obtaining Specific IP Addresses
The ipconfig command lets you view details of all network interfaces of the systems, including IP addresses. You can use findstr to extract a particular type of IP address without having to scroll through the whole thing.
ipconfig | findstr Temporary
You can extend this method to obtain any information from ipconfig, from the subnet masks to gateway addresses.
Analyzing Script Files
Whichever programming language you code in, the script files are ultimately just text. This means you can use findstr to analyze scripts and retrieve specific sections without scouring through the whole code.
Say we want to see how the if statement has been used in a particular script. We can use the following command:
findstr if script.ahk
Not only will this display the lines using the if statement, but it will also show us the expressions used. You can also include the /N parameter to display the line numbers, which is very handy for script files.
findstr /N if script.ahk
Is Findstr Worth Using?
The main difficulty in navigating the command line interface is the amount of text one needs to sift through. Findstr is an essential tool for extracting useful information and filtering out junk.
Since all terminal commands give a text-based output, findstr can always be used to locate the relevant data. From troubleshooting network issues to finding the correct files, every action is made more efficient with findstr.
Even outside of its synergy with other commands, findstr is helpful for its ability to traverse the contents of text files. You can find specific errors in machine-generated log files or retrieve sections of code in a complex script.
In short, findstr is an indispensable tool in the arsenal of any advanced Windows user, especially one intending to get familiar with the command line interface.