フォルダ下にあるテキストファイルの内容を文字検索するPowerShellコマンド

powershellコンピュータ
powershell
不幸にも沢山あるプログラムのソースファイルで特定の文字を含むファイルとその行を検索したい状況に遭遇しました。
PowerShellならコマンドラインから検索することが出来るのではないかと思考錯誤してみました。
ls 検索するフォルダのパス -Filter "ファイルのフィルタ" -Recurse | % { $f = $_.FullName; Get-Content $f | % -Begin { $i = 0 } { $i++; if ($_ -match "検索文字"){ [PSCustomObject]@{"FileName"=$f; "Line"=$i; "Value"=$_;} } } }
実行すると、ファイル名、行番号、内容が表示されます。
-Recurseオプションをつけることで検索フォルダ下のファイルを再帰的に探します。
-Filterオプションで対象ファイル名の絞り込みが出来ます。拡張子などを指定するとよいでしょう。
検索文字列を-matchで判定します。正規表現が使えるはずです。
実行例

コメント