FINDSTRとSelect-Stringについて聞いたことがありますか?Select-Stringは、入力文字列とファイルのテキストとパターンを検索するために使用されるコマンドレットです。LinuxのgrepとWindowsのFINDSTRに似(FINDSTR)ています。このガイドでは、Windows11/10でFINDSTR(FINDSTR )コマンドとSelect-Stringコマンドを使用する方法と方法について説明します。
ÂÂ
FINDSTRとは何ですか?FINDSTRの使用方法
FINDSTRは、 (FINDSTR)Windows上のファイル内の特定のテキストを検索するために使用されるコマンドです。簡単に言えばFindStringは(Find)FINDSTRになりました。また、特定のテキストを含むファイルを検索するためにも使用されます。さまざまな機能を実行するためのさまざまなFINDSTRコマンドがあります。これは、 qgrep(qgrep)という名前のWindows2000リソースキットで最初(Windows 2000) に(Resource Kit)リリースされました。これはWindows(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)して、。を使用した構文を除いて、1つのコマンドで複数の文字列を検索します
/c
。
findstr構文でのパラメーターとその意味
パラメータ
説明
/ b
(Matches)行頭にある場合は、テキストパターンと一致します。
/ e
(Matches)行末にある場合は、テキストパターンと一致します。
/ l
検索文字列を文字通り処理します。
/ r
検索文字列を正規表現として処理します。これがデフォルト設定です。
/ s
(Searches)現在のディレクトリとすべてのサブディレクトリを検索します。
/私
文字列を検索するときに文字の大文字と小文字を無視します。
/バツ
完全に一致する行を印刷します。
/ v
一致するものが含まれていない行のみを印刷します。
/ n
一致する各行の行番号を出力します。
/ m
ファイルに一致するものが含まれている場合は、ファイル名のみを出力します。
/ o
一致する各行の前に文字オフセットを出力します。
/ p
印刷できない文字を含むファイルをスキップします。
/オフライン]
オフライン属性が設定されているファイルをスキップしません。
/ f:<ファイル>
指定されたファイルからファイルリストを取得します。
/ c:<文字列>
指定されたテキストをリテラル検索文字列として使用します。
/ g:<ファイル>
指定されたファイルから検索文字列を取得します。
/ d:<dirlist>
(Searches)指定されたディレクトリのリストを検索します。たとえば、各ディレクトリはセミコロン(;)で区切る必要があります dir1;dir2;dir3
。
/ a:<colorattribute>
16進数の2桁で色属性を指定します。追加情報については、 「Â 」と入力してください。color
/?
<文字列>
ファイル名(filename)で検索するテキストを指定し ます。必須。
<span“>[\<ドライブ>:][<パス>]<ファイル名>[…]
検索する場所とファイルを指定します。少なくとも1つのファイル名が必要です。
/?
コマンドプロンプトにヘルプを表示します。
findstrコマンドの使用
1]ファイルxyでmicrosoftまたはwindowsという単語を検索するには、次を使用する必要があります。
findstr microsoft windows x.y
2]ファイルxyでmicrosoftÂwindowsという単語を検索するには、次を使用する必要があります。
findstr /c:"microsoft windows" x.y
上記のコマンド/c
は、ファイル内の指定されたテキスト「microsoftwindows」を検索するために使用されます。
3]テキストファイルtwc.txtで大文字のMを含むMicrosoftという単語の出現を検索する場合は、次を使用する必要があります。
findstr Microsoft twc.txt
4]活字ケースを重要視せずに、ディレクトリとそのサブディレクトリで特定の単語Microsoftを検索する場合は、次を使用します。
findstr /s /i Microsoft *.*
上記の構文で/s
は、は現在のディレクトリとそのサブディレクトリを検索するために使用されます。文字列Microsoft(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]特定のディレクトリとそのサブディレクトリでthewindowsclubという単語を含むファイルを検索する場合は、次を使用します。
findstr /s /i /m \<thewindowsclub\> *.*
8] thewindowsclubや、論文、温度計などで始まる他の単語を含むファイルを検索する場合は、次を使用します。
findstr /s /i /m \<the.* *.*
これらは、コマンドプロンプト(Command Prompt)などのコマンドラインインタープリターでfindstrコマンドを使用する方法です。構文を記述してfindstrコマンドを定期的に使用するには、すべてのパラメーターとその機能、およびメタ文字とその意味を理解する必要があります。
Select-Stringとそのパラメータとは
PowerShell(Imagine)でコードのチャンクを記述していて、そのPowerShellファイル内の特定の文字列とテキストを追跡できなくなったとします。(PowerShell)あなたはそれを何千もの文字列と単語の中の何千行ものコードで見つける必要があります。これらのPowerShell(PowerShell)入力ファイルで文字列とテキストを検索できるSelect-Stringコマンドがあります。Linuxのgrepに似ています。
Select-Stringは、入力文字列とファイルのテキストとパターンを検索するために使用されるコマンドレットです。LinuxのgrepやWindowsの(Windows)FINDSTRに似ています。Select-Stringを使用してテキストを検索すると、各行の最初の一致が検索され、ファイル名、行番号、および一致が発生した行全体が表示されます。1行に複数の一致を検索したり、一致の前後にテキストを表示したり、TrueやFalseなどのブール式で結果を取得したりするために使用できます。また、式の一致を除くすべてのテキストを表示するために使用できます。コマンドで使用します。FINDSTRで使用するワイルド(WildCards)カード(FINDSTR)Select-Stringでも使用できます。また、Select-Stringは、 (Select-String)ASCII、Unicodeなどのさまざまなファイルエンコーディングで機能します。ファイルエンコーディングを決定するためにByte-Order-Mark(BOM)を使用します。BOMがファイルにない場合、 Select-StringはファイルをUTF8と見なします。
Select-Stringのパラメーター
Microsoftは、構文で使用される以下のパラメータを想定して開発しました。
-AllMatches
これは、 Select-Sting(Select-Sting)が通常行う行の最初の一致とは対照的に、行のすべての一致を検索するために使用されます。
-CaseSensitive
これは、一致で大文字と小文字が区別されることを表します。デフォルトでは、Select-Stringでは大文字と小文字は区別されません。
-Context
これは、試合の行の前後に入力した指定された行数をキャプチャするために使用されます。1を入力すると、試合の前後に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の違い
FINDSTRは、ファイル内のテキストと文字列を検索するために使用されるPowerShell時代以前の実行可能ファイルです。Select-Stringは、ファイル内のテキストとパターンを検索するために使用されるPowerShellコマンドレットです。(PowerShell)FINDSTRと比較すると、Select-Stringは、一致に関する多くの情報を表示する、より強力で複雑なコマンドレットです。
PowerShellでgrepに相当するものは何ですか?
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
Have yoυ еver heard of 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.