本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Select-String」コマンドレットです。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイル検索に役立つ「Select-String」コマンドレットです。
Select-Stringコマンドレットは、特定のテキスト(文字列)を含むファイルを検索するためのコマンドレットです。例えば、「社外秘」や「Confidential」というテキストを含むファイルを検索することができます。
Select-Stringコマンドレットは、UNIX/Linuxの「grep」コマンドやWindowsの「Findstr」コマンドと同じように使用できます。このコマンドレットによって取得したファイルに対して、暗号化などの別のタスクを実行するというように活用することもできます。
Select-Stringコマンドレットの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-Path | ファイルのパスを指定する。省略可能 |
-Pattern | 検索するテキストを文字列または正規表現で指定する |
-NotMatch | 指定したパターンに一致しないファイルを検索する |
-CaseSensitive | 大文字と小文字を区別する。省略時は区別されない |
「Select-String ファイルパス -Pattern 検索するテキスト」と実行すると、ファイルパスから指定したテキストが含まれるファイルを検索します。ファイルパスの指定はワイルドカード(*)も使用可能です。フルパスではなく、ファイル名のみを指定した場合は、カレントディレクトリから検索されます。
ファイルパスで、ディレクトリのみを指定するとエラーになります。特定のディレクトリ内の全ファイルから検索する場合には、ファイルパスに「<ディレクトリパス>\*.*」と指定します。
以下の実行例では、「C:\Work」フォルダ内から「abc」というテキストを含む全てのファイルを検索しています(画面1)。
Select-String C:\Work\*.* -Pattern abc
実行結果では、該当するファイル名、行番号、文字列データを確認することができます。また、特定の拡張子を持つファイルから検索する場合には、ファイルパスに「*.txt」などと指定します。
指定したテキストを含まないファイルを検索する場合には、「-NotMatch」オプションを使用します。
以下の実行例では、「-NotMatch」オプション付けて、「abc」というテキストを含まないファイルを検索しています(画面2)。
Select-String C:\Work\*.* -Pattern abc -NotMatch
既定では、指定したテキストの大文字と小文字は区別されません。検索したいテキストの指定で大文字と小文字を区別したい場合には、「-CaseSensitive」オプションを使用します。
以下の実行例では、大文字と小文字を区別し、「abc」というテキストを含むファイルを検索しています(画面3)。
Select-String C:\Work\*.* -Pattern abc -CaseSensitive
株式会社ソフィアネットワークに所属。2009年よりマイクロソフト認定トレーナーとして、Windowsを中心としたサーバおよびクライアント管理、仮想化技術に関するトレーニングを提供している。無類の猫好き。共同執筆者である国井家で飼われている猫に夢中。
Copyright © ITmedia, Inc. All Rights Reserved.
Server & Storage 險倅コ九Λ繝ウ繧ュ繝ウ繧ー