ファイル内の文字列を検索する

ファイル内の文字列を検索する方法の紹介

c:\searchfolder\ 以下にサブフォルダも含め複数のテキストファイルが保存されている。このテキストファイルを様々な方法で検索する

バッチ

c:\searchfolder\ 以下サブフォルダも含めすべてのファイルを "hit" で検索する。/S でサブフォルダも対象になる。

サンプル:


findstr /S "hit" c:\searchfolder\*.*



/R 正規表現を使用して検索。ただしfindstrの正規表現は機能が少ない。詳細はfindstr /?で確認。

サンプル:


findstr /S /R "h[a-z]t" c:\searchfolder\*.*



Powershell

サブディレクトリも対象に含めるには -Recurse オプションを使用。

サンプル:




Get-ChildItem c:\searchfolder\ -include *.* -Recurse | Select-String -Pattern "hit"




正規表現で検索。Select-String は 特に正規表現を指定するオプションは無いと思われる。

サンプル:




Get-ChildItem c:\searchfolder\ -include *.* -Recurse | Select-String -Pattern "h[a-z]t"




cygwin

cygwinとはWindows環境で Unix ライクなコマンドを使用するフリーソフトです。

cygwin をダウンロードする

サブディレクトリも対象に含めるには -r, --recursive オプションを使用。

サンプル:


c:\cygwin\bin\grep.exe -r "hit" c:\searchfolder



-P で perl の正規表現を指定。

サンプル:


c:\cygwin\bin\grep.exe -r -P "h[a-z]t" c:\searchfolder



コマンドサンプル一覧