Windowsに適したgrepツールは何ですか?[閉まっている]


289

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

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

回答:


204

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


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

私はあなたがすでにそれを述べたことを知っています、しかしPowerGREPは素晴らしいです。

私のお気に入りの機能は次のとおりです。

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

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

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


追加のソリューション

既存のWindowsコマンド

WindowsでのLinuxコマンドの実装

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

追加のGrepツール


4
PowerGREPと同じくらい使いやすく、フル機能を備えたオープンソースのgrep guiを見つけたいのですが、まだ見つかりません:)。Cygwinをインストールしていて、そこからgrepをかなり使用しています。
Mark Biek、2011年

21
@Wells-CygwinまたはGnuWin32を介して、Windows上の古い* nix grepは無料です。FindStrとFindもWindowsに付属しています。優れたGUI、置き換え、統合の取り消し、その他の多くの機能を備えたGrep ...そう...少し余分な費用がかかります。
Mike Clark、

11
@ウェルズ、@マイククラーク、@マークビーク:この回答が投稿されたとき、Windows用の素晴らしいGUIのgrepツールがなかった可能性がありますが、それは事実ではありません。grepWinには、この回答にリストされているすべての機能があり、他の競合他社も存在する可能性があります。
John Y

9
@まあ、Grepツールが$ 159だからWindowsを嫌うのは、フロアマットが高価だから車を嫌うのに似ています。
md1337

9
@ウェルズと賛成者:牛肉は何ですか?Windows用の他のいくつかのGREPツールは、unix / linuxと同じくらい無料です。実際、これがWindowsエコシステムについて私が気に入っている点です。それが主な基準である場合、無料ですが、エコシステムは、PowerGREPなどの拡張機能を探求するために、開発者に支払いをすることをサポートしています。PowerGREPはすべての人のお茶ではないかもしれません(そのUIが圧倒されることもあります)が、その精巧さには実用性があります。
gwideman 2013

322

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 *または再帰的に検索するfindstr /s text_to_find *


2
FINDSTRにないのは、文字列を含む行数のみを表示するオプションです。(grep -cなど)これが必要な場合は、FIND / Cを使用できます。
Ra。

2
FINDSTRの機能を元に戻したい場合(およびパターンが正規表現ではない場合)は、少し繰り返して、常に2つのコマンドをチェーンすることができます。findstr / s ".ini" * .rlog | 見つける/ C「の.ini」
レイ・ヘイズ

10
Findstrは完全にRegExをサポートしていません。
caltuntas 2009年

5
..元の投稿はRegExを特に求めていませんでした!
レイ・ヘイズ

24
他のコメンテーターの一部が指摘したように、OK findstrはgrepではありません。しかし、私はそれが存在することさえ知りませんでしたので、あなたにそれを投稿するための良い先生に+1してください!
T.Robは

107

GrepWinフリーでオープンソース(GPL)

ここに画像の説明を入力してくださいTortoisesvnの人が書いたgrepWinを使っています。Windowsで仕事をします...

http://stefanstools.sourceforge.net/grepWin.html


2
そして...それは自由であり、それはPowerGrepが適切に行うことが可能ではない隠しディレクトリ/ファイル内を検索することができ
ジェローム・Verstrynge

3
コマンドラインインターフェースを持っていないようです。
Andreas Haferburg 2012

2
良いですが、1行のコンテキストしか表示されず、検索全体が完了するまで、そのコンテキストは表示されません。
マシューロック14

2
それは素晴らしくてシンプルなツールのようです。しかし、結果をファイルに保存する必要があり、エクスポートするオプションが表示されないようです。その理由だけで、私はAstroGrepを使いました。
ロス

PDFで検索しない
JinSnow

53

2013年7月の更新:

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

AstroGrepの素晴らしさ

単に行検索(つまり、コマンドラインgrepの--context = NUM​​)以外の機能も私に表示するのは非常に貴重です。
そしてそれは速いです。非常に速く、でも非を持つ古いコンピュータ上でSSDのドライブ(私が知っている、彼らがして、このハードドライブを行うために使用スピニングと呼ばれるディスク、大皿、クレイジー右?)

これは無料。
移植性があります(解凍するための単純なzipアーカイブ)。


元の回答2008年10月

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

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

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

これをgawkおよびxargsGnuWin32の 'find'を含む)と組み合わせると、UNIXの場合と同じようにスクリプトを作成できます。

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

grep --include "*.xxx" -nRHI "my Text to grep" *

Windowsバージョンでは10 Mbのテキストファイルを処理できないようなので、Gnu Grepの代わりを探し始めました。それはただそこに座って、何も見つけなかったふりをします。ファイルサイズを小さくすると動作し始めます。
Peter M

こんにちはVonV、あなたの "通常のオプション"のリンクは次のようになりました:404-ページが見つかりません。回答の編集を検討してください。
eeerahul 2013

1
@eeerahulリンクが復元され、例が追加されました
VonC 2013

AstroGrepがいいですが、残念ながら、それは現在、私のための契約ブレーカである「検索と置換」機能を欠いている
ルカシュWiatrak

「置換」機能がない
XristosK

30

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

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

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

私はそれが機能を作成するためには好都合見つけるgcirためにGet-ChildItem -Recurse .正しくパラメータを渡すために知性と、エイリアスssのためにSelect-String。だからあなたは書く:

gcir * .txt | ss foo


3
grep -Rの例:Get-ChildItem -recurse -include * .txt | Select-String -CaseSenstive "SomeString"
jslatts

6
PSで導入された多くの機能が本当に好きですが、なぜすべてのコマンドが平均的なCOBOLプログラムより長くなければならないのですか?
evilcandybag

3
@evilcandybag:パラメーター名のオートコンプリートを含む優れたオートコンプリートのおかげで、PowerShellコマンドラインの入力は速くて簡単で、結果を読み取ることができます。
Jay Bazuzi

1
@jslatts:または、エイリアスと部分的なパラメーター名を使用できますls . *.txt -r| sls -ca "SomeString"
Rynant

1
既存のエイリアスslsSelect-String本当に長すぎますか?
Joey、

23

それは「grep」カテゴリに正確に分類されない可能性がありますが、AgentRansackと呼ばれるユーティリティがなければ、Windowsで成功することはできませんでした。これは、正規表現をサポートするGUIベースの「ファイル内検索」ユーティリティです。フォルダーを右クリックし、「ransack ..」を押して、探しているものを含むファイルを見つけるのは非常に簡単です。非常に速い。


残念ながら、関連する行で外部テキストエディターを開くことはできません。
Pawel Furmaniak

1
Filelocator Proと呼ばれる有料バージョンを試してみてください。これまでに使った中で最高のgrepツールです。
Ian Stanway、2015年

Filelocator proは置き換えを行いますか?
アリマック2017

それは非常に素晴らしいインターフェースを持っています、それは置き換えをしますか?
アリマック2017

また、それは今Filelocatorのライトと呼ばれています
alimack

19

BaregrepBaretailもいいです)


win7 64ビットでは機能しません;(
Daniel Magnusson

私は彼らが今までにそれを修正したと確信しています。BareTailに対する私の主な不満は、無関係な行を(色だけでなく)非表示にするためにログを「フィルタリング」できないことです。
Ed Brannin 2012年

1
無料バージョン(BareTail)ではなく、BareTailProでフィルタリングおよび検索できます。
クレイ


4
ここでは、Windows 7 Pro 64ビットで正常に動作します。
cb88 2013年

17

質問してから2年になりますが、AstroGrep(http://astrogrep.sourceforge.net)をお勧めします。

これは無料のオープンソースであり、シンプルなインターフェースを備えています。私はいつもそれを使ってコードを検索しています。


しかし、pdfでは検索されません
JinSnow、2015年

16

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プロファイルに関数エイリアスを追加すると、適切なコマンドラインツールがないことによる苦痛がほとんどなくなります。



14

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


14

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


それはそれをします!完璧な今私はサードパーティのツールなしでシステムにgrepを持っています。
himanshuxd

10

dnGREPは、Windows用のオープンソースのgrepツールです。次のような多くの優れた機能をサポートしています。

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

私見、それも素敵でクリーンなインターフェースを持っています:)


1
私は提案されたgrepツールのかなりの数を試しましたが、私にとってはdnGrepが優勝しました。
flobadob 2013

ePubではなくPDFで検索
JinSnow 2015年

編集:epubを検索できます。次のように追加する必要があります:github.com/dnGrep/dnGrep/issues/200
JinSnow

7

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


2
私は数年間wingrepを使用してきましたが、ディレクトリ選択ボックスが小さすぎるという点を除いて素晴らしいです
Cruachan

ライセンスは 30dayのevalの後にそれを支払うする必要があります。
チップ

多くのgrepツールにはない優れた機能、一致を反転させる機能があります。たとえば、何も含まれていないHTMLファイルを見つけるのに便利です。
マシューロック

WinGrepの非常に迷惑な機能に気づきました。行われたすべての一致に対してファイルロックを保持しているようです。そのため、Windowsエクスプローラーでこれらのファイルのいずれかを削除しようとすると、WinGrepを閉じるまでできません。
マシューロック

検索結果を検索してリストをさらに絞り込むことができれば、それは私にとって理想的なツールです。
シャミル2014


7

私はかなり長い間Win32のGNUユーティリティを使用して成功しており、優れたgrepだけでなく、win32の末尾およびその他の便利なgnu utilsも持っています。パッケージ化されたシェルを避け、win32コマンドプロンプトで実行可能ファイルを使用するだけです。

パッケージ化されたTailも非常に優れた小さなアプリケーションです。


6

私はAba Search and Replaceの作成者です。PowerGREPと同様に、正規表現をサポートし、パターンを保存して後で使用したり、置換を元に戻したり、HTML / CSS / JS / PHPの構文ハイライトでプレビューしたり、UTF-8やUTF-16などのさまざまなエンコーディングをプレビューしたりできます。

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

私のツールを試してみてください。どんな質問でも喜んでお答えします。


4

私はあなたがフォルダを右クリックしてすべてのファイルの正規表現検索を行うことができるWindows用の無料のgrepツールを望んでいました-nag画面なしで。

以下は、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リストの上部に表示されるように、ショートカットの名前を変更しました。

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



3

私は何年もボーランドのgrepを使用しましたが、一致しないパターンを見つけました。ねえ。何年もの間、他に何が見つかりませんでしたか?私は、grepのように再帰する単純なテキスト検索置換を作成しました。これは、ソースフォージ上の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]

3

私が選択したツールは、適切に名前が付けられたWindows Grepです。

  • 素敵なシンプルなGUI
  • 検索と置換をサポート
  • 見つかった線の周りに線を表示できます
  • CSVと固定幅ファイルの列内を検索できます

残念ながら廃止され、私は何年もそれを使用しています。
alimack 2017

@alimackはい、私は最近これに気付きました。ただし、ツールは(少なくともWindows 7では)引き続き機能し、CNETなどからダウンロードできます。残念なことに、それはかなり良いツールでした。
John N

代替品を探すと、PowerGREPは有望ですが醜いインターフェースであり、vは高価です。grepWinを試してみましたが、必要最低限​​でした。Filelocatorはテキストの置換を実行していないようです。提案は歓迎します-特に私が交換することを約束する前に結果を見るのが好きです。
アリマック2017

2

PowerShellのselect-stringは似ています。同じオプションやセマンティクスではありませんが、それでも強力です。


2

簡単に使用できるWindows Grepツールが必要な場合は、P-Grepと呼ばれるツールを作成しました。これを自分のWebサイト(www.adjutantit.com-ホームメニュー、ダウンロード)から無料でダウンロードできるようにしました。

Windows Grepは多数のファイルに問題があるように見えたので、自分で作成しました。フォルダを選択し、右クリックしてP-Grepに送信できます。sendtoフォルダーは、インストール中に最新ではなくなります。


2

別の良い選択はMSYSです。それはあなたにあなたがより生産的になることを可能にする他のGNUユーティリティの束を与えます。


1

AJC Grepを何年も毎日使用しています。私が見つけた唯一の主な制限は、ファイルパスが255文字に制限されており、単に警告を発行するのではなく、パスが見つかると停止することです。煩わしいですが、あまり発生しません。

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


1

GREP for Windows

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


GUIさえあるか。コマンドラインから使用するだけなので、気が付かなかった。
bbrown

試合の前後に線を表示する簡単な方法を探していましたが、これはそれを行いました。たとえば、「netstat -anb | ポート22を聞いてどのプログラムを知っている-B1 22'をgrepする
月Ehrhardt

0

探している解決策がまったくない場合は、FindStrに必要なものを正確に実行するラッパーを作成できますか?

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

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


0

私のマシンにはCygwinがインストールされており、Cygwin binディレクトリを環境パスに配置しているので、Cygwin grepはコマンドラインで通常のように機能し、現時点でのgrepのすべてのスクリプトニーズを解決します。

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