FINDSTR 및 Select-String 에 대해 들어본 적이 있습니까? Select-String은 입력 문자열 및 파일에서 텍스트 및 패턴을 검색하는 데 사용되는 cmdlet입니다. Linux 의 grep 및 Windows 의 (Windows)FINDSTR 과 유사합니다 . 이 가이드에서는 Windows 11/10에서 FINDSTR 및 Select-String 명령을 사용하는 방법과 사용 방법을 확인합니다.( Select-String )
ㅏ
FINDSTR 이란 무엇이며 FINDSTR 을 사용하는 방법
FINDSTR 은 (FINDSTR)Windows 의 파일에서 특정 텍스트를 찾는 데 사용되는 명령 입니다. 줄이면 문자열 찾기(Find) 가 FINDSTR 이 됩니다. 특정 텍스트가 있는 파일을 찾는 데에도 사용됩니다. 다양한 기능을 수행하는 다양한 FINDSTR 명령이 있습니다. (FINDSTR)Windows 2000 Resource Kit 와 함께 (Resource Kit)qgrep 이라는 이름 으로 처음 출시되었습니다 . Windows 에 내장된 도구 이며 해당 파일은 .exe 형식으로 제공됩니다. FINDSTR 은 (FINDSTR)유니코드(Unicode) 형식 의 공백과 같은 null 바이트를 검색하지 않습니다 .
Microsoft 에서 개발한 명령 프롬프트(Command Prompt) 또는 기타 명령줄 해석기(Command Line Interpreters) 에서 findstr 명령을 사용하는 몇 가지 기본 규칙이 있습니다 . 그들은:
- 각 FINDSTR 명령에는 파일 이름이 뒤따르는 문자열이 포함되어야 합니다.
- FINDSTR 명령 에서 리터럴 문자와 메타 문자를 사용할 수 있습니다 . 리터럴 문자는 구문에서 특별한 의미가 없습니다. 문자와 숫자를 리터럴 문자라고 합니다. 메타 문자는 각각에 대해 특정한 의미를 갖는 기호입니다. 다음은 구문과 그 의미에서 허용되는 메타 문자입니다.
Meta-character | Value |
---|
. | Wildcard – Any character |
* | Repeat – Zero or more occurrences of the previous character or class. |
^ | Beginning line position – Beginning of the line. |
$ | Ending line position – End of the line. |
[class] | Character class – Any one character in a set. |
[^class] | Inverse class – Any one character not in a set. |
[x-y] | Range – Any characters within the specified range. |
\x | Escape – Literal use of a meta-character. |
\<string | Beginning word position – Beginning of the word. |
string\> | Ending word position – End of the word. |
- 여러 문자열을 검색하려면 별도의 줄에 검색 기준이 있는 텍스트 파일을 만들어야 합니다.
- (Use)가 있는 구문을 제외하고 단일 명령에서 여러 문자열을 검색하려면 문자열 사이에 공백을 사용하십시오
/c
.
findstr 구문의 매개변수 및 의미
매개변수
설명
/비
(Matches)텍스트 패턴이 줄의 시작 부분에 있는 경우 일치 합니다.
/이자형
(Matches)줄 끝에 있는 경우 텍스트 패턴과 일치 합니다.
/엘
문자 그대로 검색 문자열을 처리합니다.
/아르 자형
검색 문자열을 정규식으로 처리합니다. 이것이 기본 설정입니다.
/에스
(Searches)현재 디렉토리와 모든 하위 디렉토리를 검색 합니다.
/나
문자열을 검색할 때 문자의 대소문자를 무시합니다.
/엑스
정확히 일치하는 행을 인쇄합니다.
/V
일치 항목이 포함되지 않은 행만 인쇄합니다.
/N
일치하는 각 줄의 줄 번호를 인쇄합니다.
/중
파일에 일치 항목이 포함된 경우 파일 이름만 인쇄합니다.
/영형
일치하는 각 줄 앞에 문자 오프셋을 인쇄합니다.
/피
인쇄할 수 없는 문자가 있는 파일을 건너뜁니다.
/오프[라인]
오프라인 속성이 설정된 파일을 건너뛰지 않습니다.
/f:<파일>
지정된 파일에서 파일 목록을 가져옵니다.
/c:<문자열>
지정된 텍스트를 리터럴 검색 문자열로 사용합니다.
/g:<파일>
지정된 파일에서 검색 문자열을 가져옵니다.
/d:<디렉토리>
(Searches)지정된 디렉토리 목록을 검색합니다 . 각 디렉토리는 세미콜론(;)으로 구분해야 합니다(예: dir1;dir2;dir3
.
/a:<색상 속성>
두 개의 16진수로 색상 속성을 지정합니다. 추가 정보를 보려면 Â를 입력하십시오.color
/?
<문자열>
파일 이름(filename) 에서 검색할 텍스트를 지정합니다 . 필수의.
<스팬 “>[\<드라이브>:][<경로>]<파일 이름>[…]
검색할 위치 및 파일을 지정합니다. 하나 이상의 파일 이름이 필요합니다.
/?
명령 프롬프트에 도움말을 표시합니다.
findstr 명령 사용
1] xy 파일에서 microsoft 또는 windows라는 단어를 검색하려면 다음을 사용해야 합니다.
findstr microsoft windows x.y
2] xy 파일에서 microsoft windows라는 단어를 검색하려면 다음을 사용해야 합니다.
findstr /c:"microsoft windows" x.y
위의 명령 /c
에서 파일에서 지정된 텍스트 "microsoft windows"를 검색하는 데 사용됩니다.
3] twc.txt 텍스트 파일에서 대문자 M이 있는 Microsoft(Microsoft) 단어를 찾으려면 다음을 사용해야 합니다.
findstr Microsoft twc.txt
4] 대소문자 를 구분하지 않고 디렉터리 및 하위 디렉터리에서 특정 단어 Microsoft 를 검색하려면 다음을 사용하십시오.(Microsoft)
findstr /s /i Microsoft *.*
위의 구문에서 /s
는 현재 디렉토리와 그 하위 디렉토리를 검색하는 데 사용됩니다. Microsoft/i
문자열에서 대소문자(대문자 M)를 무시하는 데 사용됩니다 .
5] 단어 앞에 여러 공백이 있는 To로 시작하는 줄을 찾고 문자열이 발생한 줄 번호를 표시하려면 다음을 사용하십시오.
findstr /b /n /r /c:^ *To *.bas
6] stringlist.txt의 검색 기준과 filelist.txt의 파일 목록을 사용하여 여러 파일에서 여러 문자열을 검색하고 result.out 파일에 저장된 결과를 보려면 다음을 사용하십시오.
findstr /g:stringlist.txt /f:filelist.txt > results.out
7] 특정 디렉토리와 그 하위 디렉토리에서 windowsclub이라는 단어가 포함된 파일을 찾으려면 다음을 사용하십시오.
findstr /s /i /m \<thewindowsclub\> *.*
8] windowsclub과 같은 논문, 온도계 등으로 시작하는 다른 단어를 포함하는 파일을 찾으려면 다음을 사용하십시오.
findstr /s /i /m \<the.* *.*
다음은 명령 프롬프트(Command Prompt) 등과 같은 명령줄 인터프리터에서 findstr 명령을 사용할 수 있는 방법입니다 . 구문을 작성하고 findstr 명령을 정기적으로 사용하려면 모든 매개변수와 해당 기능, 메타 문자 및 의미를 이해해야 합니다.
Select-String 및 해당 매개변수란 무엇입니까?
(Imagine)PowerShell 에서 코드 청크를 작성 하고 해당 PowerShell 파일 에서 특정 문자열과 텍스트를 추적하지 못했다고 상상해 보십시오 . 수천 줄의 코드에서 수천 개의 문자열과 단어를 찾아야 합니다. 해당 PowerShell(PowerShell) 입력 파일 에서 문자열과 텍스트를 검색할 수 있는 Select-String 명령이 있습니다. (Select-String)Linux 의 grep과 비슷합니다 .
Select-String 은 입력 문자열 및 파일의 텍스트와 패턴을 검색하는 데 사용되는 cmdlet입니다. Linux 의 grep 및 Windows 의 (Windows)FINDSTR 과 유사합니다 . Select-String 을 사용 하여 일부 텍스트를 검색하면 각 줄에서 첫 번째 일치 항목을 찾고 파일 이름, 줄 번호 및 일치가 발생한 전체 줄을 표시합니다. 한 줄에 여러 개의 일치 항목을 찾거나 일치 전후에 텍스트를 표시하거나 True 또는 False 와 같은 부울 표현식의 결과를 얻는 데 사용할 수 있습니다. 또한 일치하는 표현식을 제외한 모든 텍스트를 표시하는 데 사용할 수 있습니다. 명령에서 사용하십시오. FINDSTR 에서 사용 하는 와일드카드(WildCards)Select-String 에서도 사용할 수 있습니다 . 또한 Select-String 은 (Select-String)ASCII , Unicode 등과 같은 다양한 파일 인코딩과 함께 작동합니다 . BOM ( Byte-Order-Mark )을 사용하여 파일 인코딩을 결정합니다. 파일 에 BOM 이 없으면 Select-String 은 파일을 (Select-String)UTF8 로 가정합니다 .
Select-String의 매개변수
Microsoft 는 구문에 사용되는 아래 매개변수를 구상하고 개발했습니다.
-AllMatches
Select-Sting 이 일반적으로 수행 하는 줄의 첫 번째 일치와 달리 한 줄의 모든 일치 항목을 검색하는 데 사용됩니다 .
-CaseSensitive
일치 항목이 대소문자를 구분함을 나타냅니다. 기본적으로 Select-String 은 대소문자를 구분하지 않습니다.
-Context
매치의 라인 전후에 입력하는 지정된 라인 수를 캡처하는 데 사용됩니다. 1을 입력하면 일치 전후에 한 줄을 캡처합니다.
-Culture
코딩에는 서수, 불변 등과 같은 특정 문화가 있습니다. 이 매개변수는 구문에서 문화권을 지정하는 데 사용됩니다.
-Encoding
ASCII , UTF8 , UTF7 , Unicode 등과 같은 파일의 텍스트 인코딩 형식을 지정하는 데 사용됩니다 .
-Exclude
이 매개변수는 파일에서 특정 텍스트를 제외하는 데 사용됩니다.
-Include
이 매개변수는 파일에 특정 텍스트를 포함하는 데 사용됩니다.
-InputObject
검색할 텍스트를 지정하는 데 사용됩니다.
-List
텍스트와 일치하는 파일 목록을 검색하는 데 사용됩니다.
-LiteralPath
검색 경로를 지정하는 데 사용됩니다.
-NoEmphasis
일반적으로 Select-String 은 파일에서 일치 항목을 강조 표시합니다. 이 매개변수는 강조 표시를 방지하는 데 사용됩니다.
-NotMatch
지정된 패턴과 일치하지 않는 텍스트를 찾는 데 사용됩니다.
-Path
와일드카드를 사용하여 검색할 경로를 지정하는 데 사용됩니다.
-Pattern
매개변수는 각 행에서 패턴으로 일치하는 항목을 찾는 데 사용됩니다.
-Quiet
이 매개변수는 True 또는 False 와 같은 (False)부울(Boolean) 값 으로 출력을 가져오는 데 사용됩니다 .
-Raw
일치(Match) 정보 가 아닌 일치하는 개체만 보는 데 사용됩니다 .
-SimpleMatch
매개변수는 정규식 일치가 아닌 단순 일치를 지정하는 데 사용됩니다.
FINDSTR 과 Select-String의(Select-String) 차이점
FINDSTR 은 파일에서 텍스트와 문자열을 검색하는 데 사용되는 PowerShell 이전 시대의 실행 파일입니다. Select-String 은 파일에서 텍스트와 패턴을 검색하는 데 사용되는 PowerShell cmdlet입니다. (PowerShell)FINDSTR 과 비교할 때 Select-String 은 일치 항목에 대한 많은 정보를 표시하는 더 강력하고 복잡한 cmdlet입니다.
grep에 해당 하는 PowerShell 은 무엇입니까 ?
Select-String은 Windows 에서 사용할 수 있는 grep에 해당 하는 PowerShell 입니다. grep과 같은 방식으로 작동하며 구문에서 사용하는 매개변수에 따라 일치에 대한 자세한 정보를 제공합니다.
FINDSTR은 Word 파일에서 작동합니까?
예, FINDSTR 은 Word 파일에서 작동합니다. 그러나 입력한 문자열이 파일에 있더라도 일치하는 항목 찾기를 표시할 수 없습니다. 알 수 없는 기술적인 이유로 인해 .doc 형식의 바이너리 파일이 아닌 .docx 형식의 결과를 제공할 수 있습니다.
관련 읽기(Related Read) : Windows에서 PowerShell 버전을 확인하는 방법.(How to check the PowerShell version in Windows.)
How to use FINDSTR and Select-String Commands in Windows 11/10
Hаve you ever heard оf FINDSTR and Select-String? Select-String is a cmdlet that is used to search text & the patterns in input strings & files. It is similar to grep on Linux & FINDSTR on Windows. In this guide, we see what and how to use FINDSTR and Select-String commands in Windows 11/10.
What is FINDSTR and how to use FINDSTR
FINDSTR is a command used to find specific text in files on Windows. Find String when put in short became FINDSTR. It is also used to find files with specific text. There are various FINDSTR commands to do various functions. It was first released with Windows 2000 Resource Kit with the name qgrep. It is a built-in tool in Windows and its file is available in .exe format. FINDSTR does not search null bytes like spaces in the Unicode format.
There are some basic rules to use findstr command on Command Prompt or other Command Line Interpreters, which are developed by Microsoft. They are:
- Each FINDSTR command must contain a string followed by a file name.
- You can use literal characters and meta-characters in FINDSTR commands. Literal characters do not have any special meaning in the syntax. Letters and numbers are called literal characters. Meta-characters are symbols that have specific meanings for each one. The following are the accepted meta-characters in the syntax and their meanings.
Meta-character | Value |
---|
. | Wildcard – Any character |
* | Repeat – Zero or more occurrences of the previous character or class. |
^ | Beginning line position – Beginning of the line. |
$ | Ending line position – End of the line. |
[class] | Character class – Any one character in a set. |
[^class] | Inverse class – Any one character not in a set. |
[x-y] | Range – Any characters within the specified range. |
\x | Escape – Literal use of a meta-character. |
\<string | Beginning word position – Beginning of the word. |
string\> | Ending word position – End of the word. |
- You should create a text file with search criteria on a separate line when you want to search for multiple strings.
- Use spaces between strings to search for multiple strings in a single command except for the syntax with
/c
.
Parameters and their meaning in findstr syntax
Parameter
Description
/b
Matches the text pattern if it is at the beginning of a line.
/e
Matches the text pattern if it is at the end of a line.
/l
Processes search strings literally.
/r
Processes search strings as regular expressions. This is the default setting.
/s
Searches the current directory and all subdirectories.
/i
Ignores the case of the characters when searching for the string.
/x
Prints lines that match exactly.
/v
Prints only lines that don’t contain a match.
/n
Prints the line number of each line that matches.
/m
Prints only the file name if a file contains a match.
/o
Prints character offset before each matching line.
/p
Skips files with non-printable characters.
/off[line]
Does not skip files that have the offline attribute set.
/f:<file>
Gets a file list from the specified file.
/c:<string>
Uses the specified text as a literal search string.
/g:<file>
Gets search strings from the specified file.
/d:<dirlist>
Searches the specified list of directories. Each directory must be separated with a semicolon (;), for example dir1;dir2;dir3
.
/a:<colorattribute>
Specifies color attributes with two hexadecimal digits. Type color
/?
for additional information.
<string>
Specifies the text to search for in filename. Required.
<span “>[\<drive>:][<path>]<filename>[…]
Specifies the location and file or files to search. At least one file name is required.
/?
Displays Help at the command prompt.
Usage of findstr commands
1] To search for the word microsoft or windows in file x.y, you should use:
findstr microsoft windows x.y
2] To search for the word microsoft windows in file x.y, you should use:
findstr /c:"microsoft windows" x.y
In the above command /c
is used to search for the specified text “microsoft windows’ in the file.
3] If you want to find the occurrences of the word Microsoft with capital M in the text file twc.txt, you should use:
findstr Microsoft twc.txt
4] If you want to search for a specific word Microsoft in a directory and its sub-directories without giving importance to type cases, use:
findstr /s /i Microsoft *.*
In the above syntax, /s
is used to search the current directory and its sub-directories. /i
is used to ignore type case (capital M) in the string Microsoft.
5] If you want to find lines that start with To with multiple spaces before the word and want to display the line number where the strings occurred, use:
findstr /b /n /r /c:^ *To *.bas
6] If you want to search for multiple strings in multiple files with search criteria in stringlist.txt and files list in filelist.txt and you want to see the results stored in the file result.out, use:
findstr /g:stringlist.txt /f:filelist.txt > results.out
7] If you want to find the files that contain the word thewindowsclub in a particular directory and its sub-directories, use:
findstr /s /i /m \<thewindowsclub\> *.*
8] If you want to find files that contain the thewindowsclub and other words that begin with the like thesis, thermometer, etc, use:
findstr /s /i /m \<the.* *.*
These are the ways you can use findstr commands in Command-Line interpreters like Command Prompt, etc. You have to understand every parameter and its function as well as the meta-characters and their meaning to write syntax and use findstr command regularly.
What is Select-String and its parameters
Imagine you are writing chunks of code in PowerShell and you lost track of certain strings and text in that PowerShell file. You need to find that in many thousand lines of code within thousands of strings and words. There comes the Select-String command which lets you search for strings and text in those PowerShell input files. It is similar to grep on Linux.
Select-String is a cmdlet that is used to search text and the patterns in input strings and files. It is similar to grep on Linux and FINDSTR on Windows. When used Select-String to search for some text, it finds the first match in each line and displays file name, line number, and the entire line where the match occurred. It can be used to find multiple matches per line or to display text before or after the match, or get results in Boolean expressions like True or False. You can also use it to display all the text except for the match of the expression you use in the command. The WildCards you use in FINDSTR can be used in Select-String too. Also, Select-String works with different file encodings like ASCII, Unicode, etc. It uses Byte-Order-Mark (BOM) to determine the file encoding. If the BOM is missing in the file, Select-String will assume the file as UTF8.
Parameters of Select-String
Microsoft envisioned and developed the below parameters which shall be used in syntax.
-AllMatches
It is used to search all the matches in a line as opposed to the first match in the line Select-Sting normally does.
-CaseSensitive
It represents that the match is case-sensitive. By default, Select-String is not case-sensitive.
-Context
It is used to capture the specified number of lines you enter before and after the line of the match. If you enter 1, it captures one line before and after the match.
-Culture
There are certain cultures like ordinal, invariant, etc in coding. This parameter is used to specify the culture in the syntax.
-Encoding
It is used to specify the encoding format of the text in files like ASCII, UTF8, UTF7, Unicode, etc.
-Exclude
This parameter is used to exclude certain text in the file.
-Include
This parameter is used to include certain text in the file.
-InputObject
It is used to specify the text to be searched.
-List
It is used to retrieve the list of files that match the text.
-LiteralPath
It is used to specify the path for the search.
-NoEmphasis
Generally, Select-String highlights the match in the file. This parameter is used to avoid highlighting.
-NotMatch
It is used to find the text that doesn’t match the specified pattern.
-Path
It is used to specify the path to be searched along with the use of wildcards.
-Pattern
The parameter is used to find the match in each line as a pattern.
-Quiet
This parameter is used to get the output in Boolean values like True or False.
-Raw
It is used to see only matching objects rather than Match info.
-SimpleMatch
The parameter is used to specify a simple match rather than a regular expression match.
Difference between FINDSTR and Select-String
FINDSTR is a pre-PowerShell era executable file that is used to search text and strings in files. Select-String is a PowerShell cmdlet that is used to search for text and patterns in files. When compared to FINDSTR, Select-String is the more powerful and complex cmdlet that displays a lot of info about the match.
What is the PowerShell equivalent of grep?
Select-String is the PowerShell equivalent of grep available on Windows. It functions the same way grep does and it gives detailed info regarding the match according to the parameters we use in the syntax.
Does FINDSTR work on Word files?
Yes, FINDSTR works on Word files. But it cannot show find the matches even if the strings you entered are there in the file. It can give you results in binary files in the .doc formats but not in the .docx formats for some unknown technical reasons.
Related Read: How to check the PowerShell version in Windows.