タイトルが示すように、どのファイルのどの行が特定の文字列に一致するかを見つける最も速い(正確な)方法は何ですか。
具体的には、.cpp
ファイルと.h
ファイルを検索しています。
Notepad ++には、「検索」メニューにある「ファイルで検索」オプションがあります。これにより、フォルダー内の複数のファイルを検索でき(フォルダーを指定できます)、各ファイルの行番号も表示されます。 。サブフォルダーと非表示フォルダーを検索に含めるかどうかを切り替えることができます。また、\ t\nなどで検索したり、必要に応じて正規表現で検索したりすることもできます。
Notepad ++はWindowsプログラマーエディター(IDEではありません)であり、オープンソースでもあります。
(私はあなたがnotepad ++について聞いたことがある可能性が高いことを理解していますが、この特定の機能に気付いていない場合のオプションとしてここで言及しています、そして後でこのスレッドに出くわした他の人のために。
乾杯:)
Unixシステムでは、人々はgrepを使用してこれを行う可能性が最も高いので、なぜWindows Grepを使用しないのですか?
Findstr
はいつも私のために働きます。検索文字列にテキスト*ワイルドカードまたは正規表現を使用できます。 Findstr /?
多くのための
エージェントランサックは魅力のように機能します。ダウンロード こちら 。
これがPowershellソリューションです:
gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString
gci
の-r
は再帰的であり、もちろん2つのファイル拡張子フィルターと同様にオプションです。 Select-String
の有用なパラメータは-list
で、ファイルごとに一致する最初のインスタンスのみを報告するのではなく、ファイル内の最初のインスタンスのみを報告します。
おそらく、一致するものが見つかった各ファイルをすぐに開きたいですか?さて、上記の次の小さな変更は、デフォルトのファイルの関連付けが何であるかに応じて、非常に役立ちます。
gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii
一部のSWのローカリゼーションを行っている間、私は DocFetcher を使用して、以前に翻訳されたファイル内の同じ文字列を検索します。これは無料でオープンソースですが、最初にインデックスを作成する必要があります。やってみなよ。 :-)
M $ で提供される「文字列」を使用します。彼らは数年前にSysinternalsからいくつかの非常に優れたユーティリティを購入しました。インストールは必要ありません。ボックスにドロップして、構文を実行するだけです。使いやすくて素晴らしい!
有名なtortoisesvn開発者によるWindows用の別のgrep
実装:
コマンドライン/ Linuxに満足している場合。 Windows用のgrepのバージョンをインストールすることを検討することをお勧めしますか?
cygwin はそれを実現するためのかなり便利な方法であり、bashシェルとrxvtターミナルを備えた完全なLinux環境を提供します。それ以外の場合、ツールが必要な場合は gnuwin32 がありますが、Windowsのcmd.exeプロンプトでスタックします。
Microsoftは実際に nixツールの独自バージョン をダウンロードとして持っていますが、私が試したところ、gnuポートに比べてかなり遅いようでした。彼らはまた、Windows 8でそれらを廃棄します。
これは、Windowsレジストリ内のテキスト文字列またはWindows XPマシン上のファイルを検索する方法です。 c:ドライブのプレーンテキストファイルで文字列「Enterprise」を検索し、出力をc:\ windows\tempのsearch_result.txtというファイルに書き込みたいとしましょう。
コマンドプロンプトを開き、次のように入力します。
findstr "Enterprise" c:*。txt> c:\ windows\temp\search_result.txt
検索する文字列では大文字と小文字が区別されます。 「Enterprise」と「enterprise」は同じ文字列を検出しません。