Windows用の grep ツールに関する推奨事項はありますか?理想的には64ビットOSを利用できるものです。
私はもちろん Cygwin を知っています、そしてまた PowerGREP を見つけました、しかし隠されたものがあるかどうか疑問に思いますそこに宝石?
(私はまだ PowerGREP のファンですが、私はもうそれを使用しません。)
私はあなたがすでにそれを述べたことを知っています、しかしPowerGREPはすごいです。
私のお気に入りの機能のいくつかは以下のとおりです。
今、私は他のgrepツールが上記のすべてを実行できることに気づきます。それは、PowerGREPがすべての機能を非常に使いやすいGUIにまとめたことだけです。
あなたを連れてきた RegexBuddy と私は彼らのものを愛する以外には関係ない(RegexBuddyには(Windows用の)grepの基本バージョンが含まれており、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でいつも使っている他のgrepツールは AstroGrep です:
単なる行検索(つまり、コマンドラインgrepの--context = NUM)以上のものを私に見せる能力は非常に貴重です。
そしてそれは速いです。非常に高速で、非 - SSD ドライブを搭載した古いコンピュータでも(私は知っていますが、このハードドライブを使用していました。回転ディスク、と呼ばれる プラッタ 、狂ったね?)
これは無料。
それは移植可能です(解凍するための単純なZipアーカイブ)。
オリジナルの回答2008年10月
Gnu Grep 大丈夫です
あなたはそれを例えばここからダウンロードすることができます:( site ftp )
通常のオプション はすべてここにあります。
それに、 gawk と xargs ( 'find'を含む) GnuWin32 )、そしてあなたは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と同等です。-v o
- -Encoding:文字エンコーディングを指定します
Get-ChildItem -Recurse .
のためのgcir
関数を、パラメータを正しく渡すためのsmartsを使って、そしてSelect-String
のための別名ss
を作るのが得策です。だからあなたは書いている:
gcir * .txt | ss foo
それは正確には 'grep'カテゴリに分類されないかもしれませんが、私は AgentRansack と呼ばれるユーティリティなしではWindowsで手に入れることができませんでした。これは、正規表現をサポートする、guiベースの「ファイル内検索」ユーティリティです。フォルダを右クリックして「ransack ..」を押し、探しているものを含むファイルを見つけるのは簡単です。非常に速いです。
質問をしてから数年が経ちましたが、AstroGrep( http://astrogrep.sourceforge.net )をお勧めします。
無料で、オープンソースで、そしてシンプルなインターフェースを持っています。私はこれを使って常にコードを検索しています。
PowerShellは数回言及されています。これが実際にどのようにして灰色がかった方法でそれを使用するかです:
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ツールAMD Unix関連のものがWindows上でうまく機能します。
Windowsのgit = cmd.exeのgrep
Git をインストールすると、基本的なLinuxコマンドがいくつか提供されることがわかりました。cat、grep、scp、その他すべての優れたコマンドです。
インストールしてGitのbinフォルダをPATHに追加すると、cmd.exeは基本的なLinux機能を持ちます。
dnGREP はWindows用のオープンソースのgrepツールです。それは含むクールな機能の数をサポートしています:
私見、それも素敵できれいなインターフェースを持っています:)
私はいつも WinGREP を使っていますが、ファイルを手放さないという問題がありました。
私はかなり長い間 Win32用のGNUユーティリティ をうまく使ってきました。私はパッケージ化されたシェルを避け、win32コマンドプロンプトで実行可能ファイルを使うだけです。
パッケージ化されているテールもかなり良い小さなアプリケーションです。
さて、GNU grepのWindowsポートのそばに:
http://gnuwin32.sourceforge.net/
ボーランドのgrep(GNU oneと非常によく似ています)もフリーウェアのBorlandのFree C++ Compiler(コマンドラインツール付きのフリーウェア)で入手できます。
私は Aba Search and Replaceの作者です。 PowerGREPと同じように、正規表現をサポートしています。 HTML/CSS/JS/PHPのシンタックスハイライト、UTF-8とUTF-16を含む異なるエンコーディング。
PowerGREPと比較して、GUIは整理されていません。パターンを入力しているとすぐに検索が開始されます(インクリメンタル検索)、そのため、正規表現を試してすぐに結果を確認できます。
あなたは私のツールを試すことを歓迎されています。私はどんな質問にでも答えたいです。
私はあなたがフォルダを右クリックして、あらゆるファイルの正規表現検索をすることができる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フォルダにドラッグします。
ショートカットをSendToリストの一番上に表示されるように1 GREP
に変更しました。
次にこれを行いたいのは、findstr
の出力をhtmlファイルを生成するものにパイプ処理して、各出力行をクリックしてそのファイルを開くことができるようにすることです。また、フォルダへのショートカットではうまくいかないと思います。パラメータを調べて、「。lnk」が含まれているかどうかを確認する必要があります。
私が選んだツールは、適切に名前が付けられた Windows Grep です。
UnxUtils は私が使っているものです、私にとっては完璧に動作します...
私は何年もの間Borlandの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ツールを使いたいならば、私は私が私のウェブサイトから無料でダウンロードできるようにしたP-Grepと呼ばれるものを作成しました:www.adjutantit.com - ホームメニュー、ダウンロード。
Windows Grepは多数のファイルに問題があるように思われたので、私は自分で書いた - それはより信頼性があるように思われる。フォルダを選択して右クリックし、それをP-Grepに送信することができます。 sendtoフォルダはインストール中に更新されません。
他の良い選択は MSYS です。それはあなたがあなたがより生産的になることを可能にするためにあなたに他のGNUユーティリティの束を与えます。
私は永遠にそれを使ってきました、そして幸運にもそれはまだ利用可能です。超高速でとても小さいです。
PowerShellのselect-stringは似ていますが、同じオプションやセマンティクスではありませんが、それでも強力です。
私は何年も毎日 AJC Grep を使っています。私が発見した唯一の大きな制限は、ファイルパスは255文字に制限されており、警告を発するのではなく、それが見つかると停止することです。迷惑ですが、あまり起こりません。
私は64ビットのWindows 7 Ultimateでそれを使っているので、その64ビットの資格情報は問題ありません。
私は Cygwin を私のマシンにインストールし、Cygwinのbinディレクトリを私の環境パスに入れるので、Cygwinのgrepはすべてを解決するコマンドラインで通常通り動作します。私のスクリプトは現時点でgrepを必要としています。
もしあなたが探しているものが全く解決策でなければ、おそらくあなたはFindStrへのラッパーを書くことができるでしょう。
とにかくFindStrはなかなかいいので、GUIをノックアップし(必要に応じて)、いくつかの追加機能(指定した文字列を含むファイルの数を見つけるためにFindと組み合わせるなど)を追加するだけです。
これは、もちろん、あなたがこれを行うための要件、時間、そして意志を持っていることを前提としています!