Windowsマシンでファイル内のテキストの文字列を検索する最も速い(正確な)方法は何ですか?


回答:


11

Notepad ++には、「検索」メニューにある「ファイルで検索」オプションがあります。これにより、フォルダー内の複数のファイルを検索でき(フォルダーを指定できます)、各ファイルの行番号も表示されます。 。サブフォルダーと隠しフォルダーを検索に含めるかどうかを切り替えることができます。また、\ t \ nなどで検索したり、必要に応じて正規表現で検索したりすることもできます。

Notepad ++はWindowsプログラマエディタ(IDEではありません)であり、オープンソースでもあります。

(私はあなたがノートパッド++を聞いた可能性が最も高いことを理解していますが、この特定の機能を知らなかった場合や、後でこのスレッドを偶然見つけた他の人のために、ここではオプションとしてそれを言及しています。

乾杯:)


ええ、私は認めざるを得ません、私は以前にこれにNotepad ++を使用したことがあります。
Jon Cage

1
このスレッドで@JonCageそこの誰かsevenforums.com/software/... も、それが有用なものになると「私は認める」と言ってあなたのように話します。それは非常に奇妙な言い方です。その人に会いたいかもしれません。多分あなたの双子。
barlop

Notepad ++は素晴らしいです。SciTEのような他のプログラマーのエディターにも同様の機能があります。
TimothyAWiseman 2012年


5

Findstrいつも私のために働きます。検索文字列には、テキスト*ワイルドカードまたは正規表現を使用できます。Findstr /?多くのための


5

Unixシステムでは、おそらくgrepを使用してこれを行うので、なぜWindows Grepを使用しないのでしょうか。

http://www.wingrep.com/


Windows Grepは不安定になることがありますが、これは私が今まで使った中で最速の検索プログラムです。
yakatz

@yakatz Windows Grepの不安定性について言及していただきありがとうございます。別のgrep / replaceツールを探します!
pacoverflow 2014年

wingrepは廃止されましたが、grepwinは引き続き利用可能で、非常にうまく機能します。
techturtle 2017年

3

これがPowershellソリューションです:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

-r中には、gci再帰のためであり、2つのファイル拡張子フィルタがあるとして、もちろん、オプションです。有用なパラメータSelect-StringIS -listだけの代わりにあなたのファイルあたりのそれの各発生を与える、ファイルに試合の最初のインスタンスを報告します。

おそらく、一致が見つかった各ファイルを即座に開きたいですか?さて、上記の次の小さな変更は、デフォルトのファイルの関連付けが何であるかに応じて、非常に役立ちます。

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii


同じことを投稿しようとしていました:)
Caleb Jares

-filter "*.cpp","*.h"複数の拡張子を受け入れますか?これはむしろ読むべきです-include ("*.cpp","*.hpp")
mloskot 2018年

2

一部のソフトウェアのローカライズを行っている間、DocFetcherを使用して、以前に翻訳されたファイル内の同じ文字列を検索します。これは無料でオープンソースですが、最初にインデックスを作成する必要があります。やってみなよ。:-)


1

M $が提供する「文字列」を使用します。彼らは数年前にSysinternalsからいくつかの非常に優れたユーティリティを購入しました。インストールは必要ありません。ボックスにドロップして、構文を実行するだけです。使いやすくて素晴らしい!



0

コマンドライン/ Linuxで満足している場合。Windows用のgrepのバージョンのインストールを検討することをお勧めしますか?

cygwinはそれを回避するためのかなり便利な方法であり、bashシェルとrxvt端末を備えた完全なLinux環境を提供します。それ以外の場合、ツールが必要な場合はgnuwin32がありますが、Windowsのcmd.exeプロンプトが表示されます。

Microsoftは実際にはダウンロードとして独自のバージョンのUnixツールを持ってますが、私がそれらを試したとき、それらはgnuポートに比べてかなり遅いように見えました。彼らはまた、Windows 8でそれらを廃棄します。


0

これは、WindowsレジストリまたはWindows XPマシン上のファイルでテキスト文字列を検索する方法です。c:ドライブのプレーンテキストファイルで「Enterprise」という文字列を検索し、c:\ windows \ tempのsearch_result.txtというファイルに出力を書き込みたいとしましょう。

コマンドプロンプトを開き、次のように入力します。

findstr "Enterprise" c:*。txt> c:\ windows \ temp \ search_result.txt

検索する文字列は大文字と小文字が区別されます。「Enterprise」と「enterprise」は同じ文字列を検索しません。

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