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

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

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



コマンドサンプル一覧