Windowsでgrep

研究などのログから、必要なデータを抜き出してくる際に、grepをよく使う。今まではcygwinをインストールしgrepを用いていたが、Windowsでほかの方法がないのか簡単に調べてみた。

調べたところWindows上でgrepを行うには

以上のような3つが考えられるようだ.今回は,Windows7からOSに標準で含まれているWindowsPowerShellを使ってやってみる

grepに相当するコマンドを探したところSelect-Stringというコマンドがあった

Select-String "Example" example.txt

のように使用するとファイル名:行番号が頭について出力されてしまった

調べてみたところGet-Contentというコマンドと組み合わせて使用するとgrepと同じ動作になるようだ

Get-Content Example.txt | Select-String "example"

のようにする
Get-Contentコマンドでファイルを取得しそれをSelect-Stringに渡して処理をしているということだ。大文字小文字を区別する場合はSelect-StringにCaseSensitiveオプションをつける

以下のサイトを参考にした
Script Center Select-String コマンドレットの使用