ウェブサイト検索

Windowsでの最良のgrepの代替は何ですか?


Linuxのgrepユーティリティは、多くのシステム管理者にとって、そのシンプルな検索機能とお馴染みの構文から人気があります。しかし、Windowsでは利用できないため、代替手段を使用するか、第三者のgrepツールをインストールしてエミュレートする必要があります。

dnGrep

`grep` はWindows向けの多くのサードパーティ実装がありますが、Linuxの `grep` とは正確には異なりますが、機能的にはほぼ同じです。CMDやPowershellを使用したネイティブのWindowsソリューションを求める場合、下で説明するような `FindStr` のような他のツールを使用できます。

最も優れた実装の一つがdnGrepで、コマンドラインの外で使用したい場合はリッチなGUIも備えています。WinGet、Windowsの新しい組み込みパッケージマネージャーからインストールするか、Githubからインストールできます。

winget install -e --id dnGrep.dnGrep

これによりインストールが求められますので、許可をクリックしてください。これで比較的速くインストールされるはずです。

スタートメニューの検索からdnGrepインターフェースを開くことができますが、良い機能の一つは、ファイルエクスプローラーから開始できる右クリックメニューへの追加です。

さまざまな grep 機能、正規表現、検索と置換、最も一般的なフラグのオプションを含むインターフェースが表示されます。また、「検索対象」設定を構成して、検索に引っかかるファイルをフィルタリングすることもできます。

検索をクリックすると、すべての検索結果が下のGUIパネルに表示されます。各ファイルを開いてサイドバーで確認できます。

これは素晴らしい経験ですが、コマンドラインから使用したい場合も可能です。しかし、これはWindowsアプリなので、CLIはLinuxのgrepとは異なります。そのため、スクリプトを調整する必要があるかもしれません。

WSLまたはGit Bashから実際のgrepを使用する

もちろん、Windows Subsystem for Linux(WSL)がインストールされている場合、純粋なLinuxターミナルにアクセスできます。これには、grepや類似のツールが含まれているでしょう。WSLはWindowsとの完全な相互運用性を持っていますが、仮想化に伴ういくつかのパフォーマンスへの影響があります。

WSLをインストールしたい場合は、セットアップに関するガイドを読んで詳細を学ぶことができます。あるいは、より良いCLI体験のためのエミュレーションレイヤーであるGit Bashを使用することもでき、grepの実装も含まれていますが、機能は限られています。

インストールが完了すると、通常のシステムと同じようにgrepを使用できますが、Windowsのファイルは/mnt/c/Users/のような場所にあるかもしれないことに留意してください。

FindStrを使用する

もし簡単に使える grep の代替品が必要であれば、PowerShell の FindStr コマンドが機能します。これは CMD と PowerShell スクリプトの両方から動作し、何もインストールする必要はありません。

findstr foo *

基本的な正規表現と共に使用することもでき、/r フラグを使用します。

findstr /r "b.*" *

関連記事: