288

Windows 用のgrepツールに関する推奨事項はありますか? 理想的には、64 ビット OS を活用できるもの。

もちろん、私はCygwinを認識しており、 PowerGREPも見つけましたが、そこに隠された宝石があるかどうか疑問に思っていますか?

4

28 に答える 28

336

FINDSTRは非常に強力で、正規表現をサポートしており、既にすべての Windows マシンに搭載されているという利点があります。

c:\> FindStr /?

Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See "color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurances of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

使用例: findstr text_to_find *or 再帰的に検索するfindstr /s text_to_find *

于 2008-09-17T20:38:01.660 に答える
214

コメントの推奨事項に基づいて、grepWinの使用を開始しましたが、これは素晴らしく無料です。


(私はまだPowerGREPのファンですが、もう使用していません。)

すでに言及されていることは知っていますが、PowerGREP は素晴らしいです。

私のお気に入りの機能のいくつかは次のとおりです。

  • フォルダーを右クリックして、PowerGREP を実行します。
  • 正規表現またはリテラル テキストを使用する
  • 含めるファイルと除外するファイルのワイルドカードを指定する
  • 検索と置換
  • 意図したものを置き換えていることを確認できるので、プレビュー モードは便利です。

これで、他の grep ツールで上記のすべてを実行できることがわかりました。PowerGREP がすべての機能を非常に使いやすい GUI にパッケージ化しているだけです。

あなたにRegexBuddyをもたらしたのと同じ素晴らしい人々からのものであり、私は彼らのものを愛する以上の関係はありません. (RegexBuddy には基本バージョンの grep (Windows 用) 自体が含まれており、PowerGREP よりもはるかに安価であることに注意してください。)


その他のソリューション

既存の Windows コマンド

Windows での Linux コマンドの実装

グラフィカル インターフェイスを備えた grep ツール

追加の Grep ツール

于 2008-09-17T20:37:27.730 に答える
111

GrepWinは無料でオープン ソース (GPL) です

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

私は、TortoiseSVN担当者の 1 人が作成した grepWin を使用しています。それはWindowsで仕事をします...

于 2010-11-29T22:11:29.187 に答える
57

2013 年 7 月の更新:

私が Windows で常に使用しているもう 1 つの grep ツールは、AstroGrepです。

AstroGrep の素晴らしさ

単なる行検索 (つまり、コマンド ライン grep の --context=NUM) 以外のものを表示する機能は非常に貴重です。
そしてそれは速いです。非SSDドライブを搭載した古いコンピューターでも非常に高速です (私が知っているように、彼らはプラッターと呼ばれる回転ディスクでこのハード ドライブを使用していました。クレイジーですよね?)

無料です。
移植可能です (解凍する単純な zip アーカイブ)。


元の回答 2008 年 10 月

代替テキストGnu Grepは大丈夫です

たとえば、ここからダウンロードできます: ( site ftp )

通常のオプションはすべてここにあります。

これをgawkxargs ( GnuWin32の 'find' を含む) と組み合わせると、Unix の場合と同じようにスクリプトを作成できます!

再帰的に grep するために使用しているオプションも参照してください。

grep --include "*.xxx" -nRHI "my Text to grep" *
于 2008-09-17T20:37:11.037 に答える
31

PowerShell のSelect-Stringコマンドレットは v1.0 では問題ありませんでしたが、v2.0 では大幅に改善されています。最近のバージョンの Windows に PowerShell が組み込まれているということは、最初に何かをインストールしなくても、ここでのスキルが常に役立つことを意味します。

Select-String に追加された新しいパラメーター: Select-String コマンドレットは、次のような新しいパラメーターをサポートするようになりました。

  • -コンテキスト: これにより、マッチ ラインの前後のラインを確認できます。
  • -AllMatches: 行内のすべての一致を表示できます (以前は、行内の最初の一致のみを表示できました)
  • -NotMatch: grep -vo と同等
  • ・エンコーディング:文字エンコーディングを指定する

の関数を作成し、パラメーターを正しく渡すためのスマートと のエイリアスを作成するgcirGet-ChildItem -Recurse .便利ssですSelect-String。だからあなたは書く:

gcir *.txt | ss フー

于 2008-09-17T20:42:04.300 に答える
23

「grep」カテゴリに正確に分類されるわけではありませんが、AgentRansackというユーティリティがなければ、Windows ではうまくいきませんでした。これは、正規表現をサポートする GUI ベースの「ファイル内検索」ユーティリティです。

フォルダを右クリックして「ransack..」をクリックし、探しているファイルを含むファイルを見つけるのは非常に簡単です。それも非常に高速です。

于 2008-09-18T06:11:01.780 に答える
19

Baregrep ( Baretailもいいです)

于 2008-09-17T20:38:25.543 に答える
17

AstroGrepをお勧めします。

無料のオープン ソースで、シンプルなインターフェイスを備えています。いつもコード検索に使っています。

于 2010-08-13T15:06:53.603 に答える
17

PowerShell については何度か言及されています。これを実際に grepish で使用する方法は次のとおりです。

Get-ChildItem -recurse -include *.txt | Select-String -CaseSensitive "SomeString"

SomeString大文字と小文字を区別して、現在のディレクトリ ツリー内のすべてのテキスト ファイルを再帰的に検索します。

さらに良いことに、これを実行します。

function pgrep { param([string]$search, [string]$inc) Get-ChildItem -recurse -include $inc | Select-String -CaseSensitive $search }

次に、次のようにします。

pgrep SomeStringToSearch *.txt

次に、本当に魔法のようにするには、関数エイリアスをPowerShell プロファイルに追加します。これにより、適切なコマンド ライン ツールがないことによる苦痛をほとんどなくすことができます。

于 2011-03-11T22:07:59.143 に答える
15

Windows での Git = cmd.exe での grep

Gitをインストールすると、いくつかの基本的な Linux コマンド (cat、grep、scp、その他すべての優れたコマンド) が提供されることがわかりました。

インストールして、Git bin フォルダーを PATH に追加すると、cmd.exe に基本的な Linux 機能が追加されます。

http://code.google.com/p/msysgit/downloads/list?can=3

于 2012-01-16T14:22:08.680 に答える
14

ackは Windows でうまく動作します ( Perlを持っている場合)。多くの用途でgrepよりも優れていると思います。

于 2008-09-17T20:38:15.950 に答える
14

Cygwinには grep が含まれています。Cygwin をインストールすると、すべての GNU ツールと Unix の機能が Windows でうまく機能します。

于 2008-09-17T20:40:57.503 に答える
13

dnGREPは、Windows用のオープンソースのgrepツールです。それは以下を含む多くのクールな機能をサポートします:

  • 交換のために元に戻す
  • エクスプローラーでフォルダーを右クリックして検索する機能
  • 音声検索やxpathなどの高度な検索オプション
  • PDFファイル、アーカイブ、およびWordドキュメント内を検索します

私見、それも素晴らしくてきれいなインターフェースを持っています:)

于 2011-05-17T18:28:34.383 に答える
7

GNU grep の Windows ポートに加えて、フリーウェアの Borland's Free C++ Compiler (コマンドライン ツールを備えたフリーウェア) で利用できる Borland の grep (GNU のものと非常によく似ています) もあります。

于 2008-09-17T21:17:26.680 に答える
7

私は常にWinGREPを使用していますが、ファイルを手放さないという問題がありました。

于 2008-09-17T20:36:35.920 に答える
7

私はかなり長い間、Win32 用の GNU ユーティリティをうまく使用してきました。これには、Win32 用の適切な grep と、tailおよびその他の便利な GNU ユーティリティがあります。パッケージ化されたシェルを避け、Win32 コマンド プロンプトで実行可能ファイルを使用するだけです。

パッケージ化された尻尾もかなり良い小さなアプリケーションです。

于 2008-09-18T06:37:26.977 に答える
6

私はAba Search and Replace の作者です。PowerGREP と同様に、正規表現、後で使用するためのパターンの保存、置換のための元に戻す、HTML/CSS/JS/PHP の構文強調表示によるプレビュー、UTF-8 および UTF-16 を含むさまざまなエンコーディングをサポートします。

PowerGREP と比較して、GUI はすっきりしています。Aba は、パターンを入力するとすぐに検索を開始する(インクリメンタル検索)ため、正規表現を試してすぐに結果を確認できます。

私のツールをぜひお試しください。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2011-12-12T03:32:12.153 に答える
4

Windows 用の無料の grep ツールが必要でした。このツールを使用すると、フォルダを右クリックしてすべてのファイルを正規表現で検索できます。ナグ画面は表示されません。

findstr以下は、以前の投稿で言及されていることに基づく簡単な解決策です。

ハード ドライブのどこかにテキスト ファイルを作成し、ツールを長期保存します。名前を .bat または .cmd に変更し、以下を貼り付けます。

@echo off
set /p term="Search term> "
del %temp%\grepresult.txt
findstr /i /S /R /n /C:"%term%" "%~1\*.*" > "%temp%\grepresult.txt"
start notepad "%temp%\grepresult.txt"

次に、SendTo フォルダーを参照します。Windows 7 では%APPDATA%\Microsoft\Windows\SendTo、バッチ ファイルのショートカットを参照して、その SendTo フォルダーにドラッグします。

1 GREPSendTo リストの一番上に表示されるように、ショートカットの名前を に変更しました。

これで次にやりたいことは、出力をfindstrhtml ファイルを生成するものにパイプして、各出力行をクリックしてそのファイルを開くことができるようにすることです。また、フォルダへのショートカットでは機能しないと思います。パラメータを調べて、「.lnk」が含まれているかどうかを確認する必要があります。

于 2011-06-24T09:47:34.933 に答える
3

UnxUtilsは私が使用するものであり、私にとっては完璧に機能します...

于 2008-09-18T06:00:17.423 に答える
3

私が選んだツールは、適切な名前の Windows Grep です。

  • 素敵なシンプルな GUI
  • 検索と置換をサポート
  • 見つかった線の周りに線を表示できます
  • CSV および固定幅ファイルの列内を検索できます
于 2011-10-10T15:25:59.597 に答える
3

Borland の grep を何年も使用していましたが、一致しないパターンが見つかりました。イークス。何年もの間、他に何が発見されていないのでしょうか? grep のような再帰を行う単純なテキスト検索置換を作成しました。これはSourceForgeの FS.EXEです。

grep 失敗...

C:\DEV> GREP GAAPRNTR \SOURCE\TPALIB\*.PRG
<no results>

Windowsのfindstrは機能します...

C:\DEV> FINDSTR GAAPRNTR \SOURCE\TPALIB\*.PRG
\SOURCE\TPALIB\TPGAAUPD.PRG:ffSPOOL(cRPTFILE, MEM->GAAPRNTR, MEM->NETTYPE)
\SOURCE\TPALIB\TPPRINTR.PRG:    AADD(mPRINTER,   TPACONFG->GAAPRNTR)
\SOURCE\TPALIB\TPPRINTR.PRG:               IF TRIM(TPACONFG->GAAPRNTR) <> TRIM(mPRINTER[2])
\SOURCE\TPALIB\TPPRINTR.PRG:                   REPLACE TPACONFG->GAAPRNTR WITH mPRINTER[2]
于 2011-03-02T17:50:48.820 に答える
2

PowerShell のSelect-Stringも同様です。同じオプションとセマンティクスはありませんが、それでも強力です。

于 2008-09-17T20:36:00.557 に答える
2

もう 1 つの適切な選択肢はMSYSです。生産性を高めるために、他の多くの GNU ユーティリティを提供します。

于 2011-09-08T05:42:12.070 に答える
1

使いやすいWindowsGrepツールが必要な場合は、P-Grepというツールを作成し、Webサイト(www.adjutantit.com )から無料でダウンロードできるようにしました。ホームメニュー、ダウンロード。

Windows Grepは多数のファイルに問題があるようだったので、私は自分で作成しました。これはより信頼性が高いようです。フォルダを選択して右クリックし、P-Grepに送信できます。sendtoフォルダーは、インストール中に更新されます。

于 2011-09-07T00:16:33.313 に答える
1

GREP for Windows

私はそれを永遠に使用してきました、そして幸いにもそれはまだ利用可能です。それは超高速で非常に小さいです。

于 2012-01-05T23:02:02.673 に答える
1

私は何年もの間、毎日AJC Grepを使用してきました。私が見つけた唯一の主な制限は、ファイル パスが 255 文字に制限されており、警告を発行するのではなく、ファイル パスに遭遇すると停止することです。面倒ですが、あまり頻繁には起こりません。

私は 64 ビットの Windows 7 Ultimate で使用しているため、64 ビットの資格情報は問題ありません。

于 2011-12-21T11:57:28.667 に答える
0

マシンにCygwinをインストールし、Cygwin の bin ディレクトリを環境パスに配置したので、Cygwin の grep はコマンド ラインで通常どおりに動作し、現時点で grep に対するすべてのスクリプトのニーズを解決します。

于 2011-09-13T21:45:51.390 に答える
0

探しているソリューションがまったくない場合は、必要な機能を正確に実行するFindStrのラッパーを作成できますか?

とにかくFindStrは非常に優れているので、GUIをノックアップし(必要に応じて)、いくつかの追加機能を提供する必要があります(Findと組み合わせて、指定された文字列を含むファイルの数を見つけるなど[上記])。

もちろん、これは、これを行うための要件、時間、および意欲があることを前提としています。

于 2012-02-20T16:55:32.443 に答える