インデックスを作成せずにファイル内の文字列を検索するツール[終了]


170

信じられないほど古いレガシーアプリケーションの一部の接続文字列を変更する必要があり、それを作成したプログラマーは、アプリ全体に接続文字列を配置するのは素晴らしいアイデアだと考えました。

Visual Studioの「現在のプロジェクト」の検索は信じられないほど遅く、私はWindows Searchを信頼していません。

それで、そこにある最高の無料の非インデックス付きテキスト検索ツールは何ですか?フォルダとそのサブフォルダ内に必要な文字列を含むファイルのリストを返すだけです。

Windows 2003 Serverを実行しています。


010 Editor0秒でhuuugeファイルを検索します。
Morteza Ziyae

Depeche Viewは、このページの他のすべてを打ち負かしています。ヘルプファイルを読んで学ぶために数分かかるショートカットがいくつかあります。stahlworks.com/dev/depeche-view.html
BVernon

私もこれをよく使用していますが、結果の各ファイルをクリックして、右側のペインで一致するコンテンツを確認する必要があります。また、右側のペインのファイルコンテンツはズームできません(フォントサイズが小さすぎます)。
メリアン2017年

これはソフトウェアエンジニアリングにとっては良い質問ですが、SOに関しては話題外です。どのSEネットワークサイトが話題になっていますか?たとえば「検索コードベース」でSE.SEの質問を参照してください。この質問は、再開できるように移行する必要があります。
smci 2018

1
アプリストアでファイルコンテンツファインダーを確認してください(免責事項-私は開発者です)。テキスト/ソースファイルだけでなく、pdf、doc(x)、xls(x)、スキャンしたjpg / pngファイルでも検索できます-microsoft.com/en-au/p/file-content-finder/9mzc4sk6j6bp
ジオシステムズ

回答:


60

元の回答

Windows Grepはこれを非常にうまく行います。

編集: Windows Grepはもはや開発されておらず、開発者も利用できません。代替ダウンロードリンクはこちらです:Windows Grep-代替

現在の回答

Visual Studio Codeには、ファイル全体にわたる優れた検索および置換機能があります。非常に高速で、置換前の正規表現とライブプレビューをサポートしています。

ここに画像の説明を入力してください



10
私のマシン(Windows 7)では、2回クラッシュしました。他のことを試してみます。
B.クレイシャノン

2
それは古く、私にとってもクラッシュしました。いくつかの目標に完璧ではないにしても、grepWinの方が優れています
Paolo

9
AstroGrepも高速で、ノーストールです
Zorb

Windows 7でうまく動作しました-クラッシュしません
w5m

364

私はNotepad ++の [ ファイルの検索 ]ダイアログのファンですボーナス:無料です。

ここに画像の説明を入力してください


残念ながら、すべてのMicrosoft Wordファイルを検索することはできません。".doc"と ".docm"の違いについて何か疑わしい
カールウィトフト'17年

11
@CarlWitthoft .docm、のような.docx.xlsmと、.xlsx実際にzip形式のXML文書です。
Ian Boyd、

1
それは、通常の数のファイルが含まれる小さなフォルダーではうまく機能し、少なくともラップトップを使用するときは、多くのファイルフォルダーがある大きなサイズではハングします。パワフルなPCを使用すると、少し速くなります。さらに、検索中は他のファイルを開くことができません。
Mohammed Joraid、2015

私のテキストが見つかりました。ただし、結果で置換する値と保持する値を選択することはできませんでした。全部かゼロか?
ofer.sheffer 2015年

5
これがメモ帳++のオプションでさえあるとは思っていませんでした。不足しているファイルを見つけるための優れたソリューション!ただし、ファイルサイズが大きいと問題が発生するようです。「ファイルが大きすぎて開けない」エラーが発生する場合があります。
ジョンオーガスト

167

findstr.exeファイル内を検索できるWindows組み込みプログラムもあります。

>findstr /s "provider=sqloledb" *.cs

3
シンプルで効率的!
Markus Fantone

これはWindowsエクスプローラーよりもはるかに高速で、実際に検索していたテキストが見つかりましたが、Windowsエクスプローラーを使用しても検索結果は得られませんでした。ありがとう。
mbomb007 2015年

1
私にとっては、何もインストールする必要がないため、このトピックに関する最良の答えです。私の場合、画面に表示するには情報が多すぎるため、いくつかの引数を追加する必要がありました。引数/ Mは、探していた情報が含まれているファイル名のみをリストします。findstrコマンドのマニュアルにアクセスするには、「findstr /?」と入力します。コンソールで。
Alexandre Ribeiro

これは素晴らしいユーティリティですが、ファイル名のキリル文字を読み取ることができないようです。例:FINDSTR: Cannot open ???????????.txt
Artem Russakovskii

1
findstrはUTF16テキストをサポートしていません。
David Bremner

34

私はAstroGrepが好きです。結果はリストに表示されます。行をクリックすると、行全体がヒットを強調表示するプレビューとして表示されます。かなり高速で無駄のないようで、無料です。Windows 7、8、10、およびWindows Server 2008 R2でテスト済み。正規表現を許可します。

最新のAstroGrepスクリーンショット

AstroGrepは、Microsoft Windows GUIファイル検索(grep)ユーティリティです。その機能には、正規表現、多彩な印刷オプション、最近使用したパスが保存され、ソースコードを見るのに非常に便利な「コンテキスト」機能があります

リファレンス:AstroGrep


7
ここにリストされている他のすべてのものを除いて、これはフォルダーの除外パターンを指定できる唯一のものです。node_modulesまたはのようなフォルダをスキップしようとするときに非常に役立ちますbower_components
Mrchief 2016年

1
非常に優れたソフトウェア、高速、構成可能、および関連するコンテキストと共にファイルを表示
HanniBaL90

1
そして、「速い」は2番目の言及に値します...self == happy
cssyphus

9

フォルダ内のVisual Studioの検索は、私が見つけた中で最速です。

他のツールとは異なり(テキストファイルはWindowsのディスクキャッシュに収まる可能性があります)、テキスト(バイナリ以外の)ファイルのみをインテリジェントに検索し、同じフォルダー内の後続の検索は非常に高速であると思います。

SSDなしの通常のハードドライブでのVS2010は、26kのファイル、ソースコード、バイナリが混在する20GBフォルダーを検索するのに1分かかります。15kファイルが検索されます。残りはバイナリファイルであるためスキップされる可能性があります。同じフォルダー内での後続の検索は数秒程度です(キャッシュからアイテムが削除されるまで)。

同じフォルダで次に近いのはgrepWinです。約3分。2000KB(デフォルト)より大きいファイルを除外しました。[バイナリファイルを含める]設定は、検索の高速化という点では何の効果もないようです。バイナリファイルはまだ変更されているようですが(バグ?)、検索結果には表示されません。後続の検索はすべて同じ3分かかります-ハードドライブキャッシュを利用できません。200k未満のファイルに制限すると、最初の検索は2.5分で、後続の検索は数秒程度で、VSとほぼ同じくらい高速です-キャッシュ内。

エージェントランサックとFileSeekは、巨大なマルチギガバイトのバイナリファイルを含むすべてを検索するため、このフォルダーではどちらも非常に低速です(約20分)。リソースモニターによると、1秒あたり約10〜20MBで検索します。

更新:特定のサイズのファイルを検索するようにエージェントランサックを設定できます。200KB未満のカットオフを使用すると、新規検索で1:15分、後続の検索で5秒になります。grepWinより高速で、全体的にVSと同じくらい高速です。複数の検索をタブに保持し、VSが最近検索したフォルダーのリストを汚染したくない場合、およびVSが実行したくないようにバイナリを検索する機能を保持したい場合は、実際には非常に便利です。エージェントランサックはエクスプローラのコンテキストメニューエントリも作成するため、フォルダから簡単に起動できます。grepWinと同じですが、UIがより高速で高速です。

私の新しい検索設定は、コンテンツのAgent Ransackとファイル名のEverything(素晴らしいツール、即座の結果!)です。


3

Microsoft以外のツールをインストールしたくない場合は、Microsoft SysinternalsからSTRINGS.EXEダウンロードして、次のような手順を実行してください。

@echo off
if '%1' == '' goto NOPARAM
if '%2' == '' goto NOPARAM
if not exist %1 goto NOFOLDER

echo ------------------------------------------
echo - %1 : folder
echo - %2 : string to be searched in the folder
echo - PLEASE WAIT FOR THE RESULTS ...
strings -s %1\* | findstr /i %2 > grep.txt
notepad.exe grep.txt

goto END

:NOPARAM rem - input command not correct
echo ====================================
echo Usage of GREP.CMD:
echo   Grep "SearchFolder" SearchString
echo Please specify all parameters
echo ====================================
goto END

:NOFOLDER
echo Folder %1 does not exist
goto END

:END rem - exit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.