web-dev-qa-db-ja.com

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

私は信じられないほど古いレガシーアプリケーションのいくつかの接続文字列を変更しなければなりません、そしてそれを作ったプログラマーはいたるところに接続文字列でアプリ全体を塗りつぶすことが素晴らしい考えであると思いました。

Visual Studioの "現在のプロジェクト"検索は非常に遅く、私はWindows Searchを信頼していません。

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

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

160
kitsune

Windows Grep これは本当にうまくいきます。

編集:Windows Grepは開発者によってメンテナンスされたり利用可能になったりしていません。代替のダウンロードリンクはこちらです。 Windows Grep - 代替

60
RedFilter

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

enter image description here

347
BQ.

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

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

Agent Ransack もう一つの良いものです。それは速く、無料で、シェル統合のような他のいくつかの素晴らしい機能を持っています。

Agent Ransack screenshot

40
snowdude

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

Latest AstroGrep Screenshot

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

参照: AstroGrep

34
Anytoe

私は grepWin の大ファンです。無料、軽量、そしてExplorer Shellから入手できます。何かを探すために故意にプログラムを見つけて起動する必要はありません。エクスプローラを右クリックして起動するだけです。

11
Dan Rigby

SeekFast テキストファイル、MS Word、Excel、OpenOfficeなど、ファイル内のテキストを検索するのに非常に便利です。無料版があります。

10
pamir_miren

フォルダ内でのVisual Studioの検索は私が見つけたものよりはるかに速いです。

私はそれがテキスト(バイナリではない)ファイルだけをインテリジェントに検索し、そして同じフォルダーでのその後の検索は他のツールとは違って非常に速いです(テキストファイルはWindowsディスクキャッシュに収まるでしょう)。

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

私が同じフォルダに対して次に見つけたのはgrepWinです。約3分です。 2000KB(デフォルト)を超えるファイルを除外しました。 [バイナリファイルを含める]設定は検索を高速化するという点では何もしないようですが、バイナリファイルはまだ修正されていないようです(バグ?)が、検索結果には表示されません。その後の検索はすべて同じ3分かかります - ハードドライブキャッシュを利用することはできません。私が200kより小さいファイルに制限した場合、最初の検索は2.5分で、それ以降の検索は秒単位で行われ、キャッシュ内ではVSと同じくらい高速です。

巨大な数ギガバイトのバイナリファイルを含むすべてを検索するため、Agent RansackとFileSeekはどちらも、このフォルダでは約20分と非常に低速です。リソースモニターによると、彼らは毎秒約10-20MBで検索します。

更新:Agent Ransackは、特定のサイズのファイルを検索するように設定でき、200 KB未満のカットオフを使用すると、新規検索には1:15分、後続の検索には5秒が使用されます。 grepWinよりも速く、VS全体と同じくらい速いです。タブでいくつかの検索を続けたいがVS最近検索したフォルダリストを汚染したくないなら、そしてVSがしたくないようなバイナリを検索する能力を維持したいのなら、それは実に素晴らしいです。 Agent Ransackはエクスプローラのコンテキストメニューエントリも作成するので、フォルダから起動するのは簡単です。 grepWinと同じですがより良いUIとより速いです。

私の新しい検索設定は、コンテンツにはAgent Ransack、ファイル名にはEverything(素晴らしいツール、すぐに使える結果)です。

9
Steve

FileSeek 。速くて無料です。テキスト文字列を見つけることも、正規表現と一致させることもできます。

9
Jon Tackabury

TextPad このようなことには本当に良いです。あなたは無料でそれを使うことができます、しかし、あなたはそれを買うように頼む警告メッセージを得ます。それ以外はそれは万能の優れた道具です。

3
Simon

あなたはcygwinをインストールし(時間がかかります)、grep -Rを使うことができます。

2
Ruben

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
2
FIBA

FileSearchy 。早くて無料です。インデックスはありますが、ファイル名のみが対象で、内容は対象外です。

1
lightstep

私はいつもgrepを使うか--- nxutils から見つけます。これはms-windowsでとてもうまくいきます。

1
Jonke

もっと軽量なのでcygwinより GOW することをお勧めしますが、> 100MBではなく、grepのほかに130程度の* nixコマンドラインユーティリティが含まれています。

1
TechSpud

そのためのコンソールベースのユーティリティを探しているなら、このURLを参照して自分で作成することができます。

http://www.dotnetlogic.net/articles/search-for-filename-or-text-inside-other-files-in-directory-using-c/

フォルダ内の検索テキストのリストを検索し、同じ名前のファイルと一致するファイルを返すと、そのファイルにテキストが含まれている場合も返されます。

1
Pankaj Singh

私はお勧めすることができますack - Linuxのルートを持つコマンドラインプログラム。 grepよりも高速で、git/Subversionディレクトリとバイナリファイルを無視します。出力はよりわかりやすくなります。そしてackとタイプした方がgrepより25%速いです;)

http://beyondgrep.com/

私はbabit(cygwin)とgitのmsysで試してみました。これはPerlで書かれているので、OSのどこかにPerlをインストールしたcmd.exeでも動作するはずです。

窓のために、あなたはそれがそれのすべてを自動的にする「Seekfast」を試すことができます。ここ--- https://seekfast.org 安全なリンク。

0
Koshmaar