Linuxでよく使う検索コマンドの「grep」はWindowsでは使えません。しかし、コマンドプロンプトやPowerShellなら「grep」の代わりのコマンドを使えます。この記事では、Windowsでgrepの代わりのコマンドを使う方法をお伝えします。
LinuxとWindowsの両方を使いこなしている方の中には、Linuxで使っているコマンドをWindowsでも使えたら便利だと考える方も少なくありません。特に、Linuxで特定のファイルから特定の文字列を検索できる「grep」をWindowsでも使えないかと考える方がたくさんいます。
この記事では、Windowsでgrepを使えるのか、grepの代わりに使えるコマンドはあるのか、詳しく解説します。
結論から申し上げると、Windowsではgrepは使えません。Windowsでコマンドを使えるアプリはコマンドプロンプトやPowerShellですが、どちらを使ってもgrepのコマンドはそのままWindowsでは使えません。
しかし、grepと同じ様に、特定のファイルから特定の文字列を検索できるコマンドをWindowsでも使うことはできます。Windowsでは、コマンドプロンプトとPowerShellのそれぞれで、grepと同じ働きをするコマンドが使えます。grepをWindowsでも使いたい方は、grepの代わりに使えるコマンドを覚えて使えるようにしましょう。
Windowsでgrepと同じ働きをする、検索コマンドを使い方法をお伝えします。WindowsではコマンドプロンプトとPowerShellのそれぞれで使えるので、それぞれの使い方を解説します。
まずはコマンドプロンプトでgrepの代わりのコマンドを使う方法です。
まずは、コマンドプロンプトを起動しましょう。Windows10の「スタートボタン」をクリックして「Windowsシステムツール」からコマンドプロンプトを起動します。Windowsのシステムを変更する場合には管理者権限での起動が必要ですが、今回は通常の起動で大丈夫です。
コマンドプロンプトでgrepの代わりに使えるコマンドの1つ目は「find」です。次のように構文を入力します。
「find 検索文字列 検索対象ファイル名」
このコマンドで利用できるオプションは次の通りです。
オプション | 内容 |
/V | 検索対象文字列を含まない行をすべて表示 |
/C | 検索対象文字列を含む行の数だけ表示 |
/N | 検索で引っかかった行を表示 |
/I | 大文字小文字を区別せずに検索 |
/OFF | オフライン属性が設定されたファイルをスキップしない |
正規表現を使って検索したい場合には、「findstr」のコマンドを使います。入力する構文は次の通りです。
「findstr 検索対象文字列(正規表現) 検索対象ファイル」
このコマンドで利用できるオプションは次の通りです。
オプション | 内容 |
/B | 行の先頭にあるパターンを検索 |
/E | 行の末尾にあるパターンを検索 |
/L | 検索文字列リテラルとして使用 |
/R | 検索文字列正規表現として使用 |
/S | 現在のフォルダとすべてのサブフォルダから一致するファイルを検索 |
/I | 検索するときに大文字と小文字を区別しない |
/X | 検索文字列に完全に一致する行のみ表示 |
/V | 検索文字列に一致しない行のみ表示 |
/M | 検索文字列がヒットしたらファイル名のみ表示 |
/O | 一致するか画像の前に文字オフセットを表示 |
/P | 印刷不可能な文字を含むファイルをスキップ |
grepの代わりのコマンドはPowerShellでも利用できます。
PowerShellの起動方法はWindows10の「スタートボタン」から「Windows管理ツール」を右クリックします。すると表示されるメニューの中にあります。
PowerShellを開いたら「Select-String」というコマンドを使います。構文は次の通りです。
「Select-String 検索対象文字列 検索対象ファイル -Encoding default」
1 / 2
続きを読む