回答:
(私は今でもPowerGREPのファンですが、もう使用していません。)
私はあなたがすでにそれを述べたことを知っています、しかしPowerGREPは素晴らしいです。
私のお気に入りの機能は次のとおりです。
これで、他のgrepツールで上記のすべてを実行できることがわかりました。PowerGREPがすべての機能を非常に使いやすいGUIにパッケージ化しているだけです。
あなたにRegexBuddyをもたらした同じ素晴らしい人々から、そして私が彼らのものを愛する以上に何の関係もない人々から。(RegexBuddyには基本バージョンのgrep(Windows用)自体が含まれており、PowerGREPよりもはるかに低価格であることに注意してください。)
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 *
GrepWinフリーでオープンソース(GPL)
Tortoisesvnの人が書いたgrepWinを使っています。Windowsで仕事をします...
2013年7月の更新:
私がWindowsでいつも使用しているもう1つのgrepツールはAstroGrepです。
単に行検索(つまり、コマンドラインgrepの--context = NUM)以外の機能も私に表示するのは非常に貴重です。
そしてそれは速いです。非常に速く、でも非を持つ古いコンピュータ上でSSDのドライブ(私が知っている、彼らがして、このハードドライブを行うために使用スピニングと呼ばれるディスク、大皿、クレイジー右?)
これは無料。
移植性があります(解凍するための単純なzipアーカイブ)。
元の回答2008年10月
Gnu Grepは大丈夫です
たとえば、ここからダウンロードできます:(site ftp)
通常のオプションはすべてここにあります。
これをgawkおよびxargs(GnuWin32の 'find'を含む)と組み合わせると、UNIXの場合と同じようにスクリプトを作成できます。
再帰的にgrepするために使用しているオプションも参照してください。
grep --include "*.xxx" -nRHI "my Text to grep" *
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
ls . *.txt -r| sls -ca "SomeString"
sls
はSelect-String
本当に長すぎますか?
それは「grep」カテゴリに正確に分類されない可能性がありますが、AgentRansackと呼ばれるユーティリティがなければ、Windowsで成功することはできませんでした。これは、正規表現をサポートするGUIベースの「ファイル内検索」ユーティリティです。フォルダーを右クリックし、「ransack ..」を押して、探しているものを含むファイルを見つけるのは非常に簡単です。非常に速い。
質問してから2年になりますが、AstroGrep(http://astrogrep.sourceforge.net)をお勧めします。
これは無料のオープンソースであり、シンプルなインターフェースを備えています。私はいつもそれを使ってコードを検索しています。
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プロファイルに関数エイリアスを追加すると、適切なコマンドラインツールがないことによる苦痛がほとんどなくなります。
Cygwinにはgrepが含まれています。Cygwinをインストールすると、すべてのGNUツールとUnixのものはWindowsでうまく機能します。
WindowsのGit = cmd.exeのgrep
Gitをインストールすると、いくつかの基本的なLinuxコマンド(cat、grep、scp、その他すべての優れたコマンド)が提供されることがわかりました。
インストールしてGit binフォルダーをPATHに追加すると、cmd.exeに基本的なLinux機能が追加されます。
dnGREPは、Windows用のオープンソースのgrepツールです。次のような多くの優れた機能をサポートしています。
私見、それも素敵でクリーンなインターフェースを持っています:)
まあ、GNU grepのWindows移植版の横にある:
http://gnuwin32.sourceforge.net/
また、フリーウェアであるBorlandのFree C ++ Compiler(コマンドラインツールを備えたフリーウェアです)には、Borlandのgrep(GNUに非常によく似ています)があります。
私はかなり長い間Win32のGNUユーティリティを使用して成功しており、優れたgrepだけでなく、win32の末尾およびその他の便利なgnu utilsも持っています。パッケージ化されたシェルを避け、win32コマンドプロンプトで実行可能ファイルを使用するだけです。
パッケージ化されたTailも非常に優れた小さなアプリケーションです。
私はAba Search and Replaceの作成者です。PowerGREPと同様に、正規表現をサポートし、パターンを保存して後で使用したり、置換を元に戻したり、HTML / CSS / JS / PHPの構文ハイライトでプレビューしたり、UTF-8やUTF-16などのさまざまなエンコーディングをプレビューしたりできます。
PowerGREPと比較して、GUIは雑然としていません。Abaは、パターンを入力すると同時に検索を開始し(インクリメンタル検索)、正規表現を試してすぐに結果を確認できます。
私のツールを試してみてください。どんな質問でも喜んでお答えします。
私はあなたがフォルダを右クリックしてすべてのファイルの正規表現検索を行うことができる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 GREP
SendToリストの上部に表示されるように、ショートカットの名前を変更しました。
次にこれで実行findstr
したいことは、htmlファイルを生成する出力をパイプして、各出力行をクリックしてそのファイルを開くことができるようにすることです。また、フォルダへのショートカットでは機能しないと思います。パラメータを調べて、「。lnk」が含まれているかどうかを確認する必要があります。
私は何年もボーランドの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]
私が選択したツールは、適切に名前が付けられたWindows Grepです。
私のマシンにはCygwinがインストールされており、Cygwin binディレクトリを環境パスに配置しているので、Cygwin grepはコマンドラインで通常のように機能し、現時点でのgrepのすべてのスクリプトニーズを解決します。