Powershell:ファイル内の文字列を検索する
linuxだとgrepコマンドを使えば文字列検索できますが、PowerShellだどうするのか知らなかったのでメモです。どうやらSelect-Stringという命令(PowerShellではコマンドレットと呼ぶ)でできそうです。
試しにtest1.txtというファイルを用意して、「あああ」という文字を検索してみました。が検索ヒットせず…
PS C:\test> Get-Content .\test1.txt あああ かかか さささ たたた ななな PS C:\test> PS C:\test> Select-String "あああ" .\test1.txt PS C:\test>
どうやら日本語の場合は以下のようにEncodingでdefaultを指定しなければならないようです。指定したところ想定通り結果が得られました。
PS C:\test> Select-String "あああ" .\test1.txt -Encoding default test1.txt:1:あああ PS C:\test>
以下のようにすればカレントフォルダ以下のすべてのtxtファイルを検索できます。
PS C:\test> ls *.txt -Recurse -Force | Select-String "あああ" -Encoding default