Windows 用のgrepツールに関する推奨事項はありますか? 理想的には、64 ビット OS を活用できるもの。
もちろん、私はCygwinを認識しており、 PowerGREPも見つけましたが、そこに隠された宝石があるかどうか疑問に思っていますか?
Windows 用のgrepツールに関する推奨事項はありますか? 理想的には、64 ビット OS を活用できるもの。
もちろん、私はCygwinを認識しており、 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 *
or 再帰的に検索するfindstr /s text_to_find *
(私はまだPowerGREPのファンですが、もう使用していません。)
すでに言及されていることは知っていますが、PowerGREP は素晴らしいです。
私のお気に入りの機能のいくつかは次のとおりです。
これで、他の grep ツールで上記のすべてを実行できることがわかりました。PowerGREP がすべての機能を非常に使いやすい GUI にパッケージ化しているだけです。
あなたにRegexBuddyをもたらしたのと同じ素晴らしい人々からのものであり、私は彼らのものを愛する以上の関係はありません. (RegexBuddy には基本バージョンの grep (Windows 用) 自体が含まれており、PowerGREP よりもはるかに安価であることに注意してください。)
GrepWinは無料でオープン ソース (GPL) です
私は、TortoiseSVN担当者の 1 人が作成した 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 では大幅に改善されています。最近のバージョンの Windows に PowerShell が組み込まれているということは、最初に何かをインストールしなくても、ここでのスキルが常に役立つことを意味します。
Select-String に追加された新しいパラメーター: Select-String コマンドレットは、次のような新しいパラメーターをサポートするようになりました。
- -コンテキスト: これにより、マッチ ラインの前後のラインを確認できます。
- -AllMatches: 行内のすべての一致を表示できます (以前は、行内の最初の一致のみを表示できました)
- -NotMatch: grep -vo と同等
- ・エンコーディング:文字エンコーディングを指定する
の関数を作成し、パラメーターを正しく渡すためのスマートと のエイリアスを作成するgcir
とGet-ChildItem -Recurse .
便利ss
ですSelect-String
。だからあなたは書く:
gcir *.txt | ss フー
「grep」カテゴリに正確に分類されるわけではありませんが、AgentRansackというユーティリティがなければ、Windows ではうまくいきませんでした。これは、正規表現をサポートする GUI ベースの「ファイル内検索」ユーティリティです。
フォルダを右クリックして「ransack..」をクリックし、探しているファイルを含むファイルを見つけるのは非常に簡単です。それも非常に高速です。
AstroGrepをお勧めします。
無料のオープン ソースで、シンプルなインターフェイスを備えています。いつもコード検索に使っています。
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 プロファイルに追加します。これにより、適切なコマンド ライン ツールがないことによる苦痛をほとんどなくすことができます。
Windows での Git = cmd.exe での grep
Gitをインストールすると、いくつかの基本的な Linux コマンド (cat、grep、scp、その他すべての優れたコマンド) が提供されることがわかりました。
インストールして、Git bin フォルダーを PATH に追加すると、cmd.exe に基本的な Linux 機能が追加されます。
Cygwinには grep が含まれています。Cygwin をインストールすると、すべての GNU ツールと Unix の機能が Windows でうまく機能します。
dnGREPは、Windows用のオープンソースのgrepツールです。それは以下を含む多くのクールな機能をサポートします:
私見、それも素晴らしくてきれいなインターフェースを持っています:)
GNU grep の Windows ポートに加えて、フリーウェアの Borland's Free C++ Compiler (コマンドライン ツールを備えたフリーウェア) で利用できる Borland の grep (GNU のものと非常によく似ています) もあります。
私は常にWinGREPを使用していますが、ファイルを手放さないという問題がありました。
私はかなり長い間、Win32 用の GNU ユーティリティをうまく使用してきました。これには、Win32 用の適切な grep と、tailおよびその他の便利な GNU ユーティリティがあります。パッケージ化されたシェルを避け、Win32 コマンド プロンプトで実行可能ファイルを使用するだけです。
パッケージ化された尻尾もかなり良い小さなアプリケーションです。
私はAba Search and Replace の作者です。PowerGREP と同様に、正規表現、後で使用するためのパターンの保存、置換のための元に戻す、HTML/CSS/JS/PHP の構文強調表示によるプレビュー、UTF-8 および UTF-16 を含むさまざまなエンコーディングをサポートします。
PowerGREP と比較して、GUI はすっきりしています。Aba は、パターンを入力するとすぐに検索を開始する(インクリメンタル検索)ため、正規表現を試してすぐに結果を確認できます。
私のツールをぜひお試しください。ご不明な点がございましたら、お気軽にお問い合わせください。
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 GREP
SendTo リストの一番上に表示されるように、ショートカットの名前を に変更しました。
これで次にやりたいことは、出力をfindstr
html ファイルを生成するものにパイプして、各出力行をクリックしてそのファイルを開くことができるようにすることです。また、フォルダへのショートカットでは機能しないと思います。パラメータを調べて、「.lnk」が含まれているかどうかを確認する必要があります。
UnxUtilsは私が使用するものであり、私にとっては完璧に機能します...
私が選んだツールは、適切な名前の Windows Grep です。
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]
PowerShell のSelect-Stringも同様です。同じオプションとセマンティクスはありませんが、それでも強力です。
もう 1 つの適切な選択肢はMSYSです。生産性を高めるために、他の多くの GNU ユーティリティを提供します。
使いやすいWindowsGrepツールが必要な場合は、P-Grepというツールを作成し、Webサイト(www.adjutantit.com )から無料でダウンロードできるようにしました。ホームメニュー、ダウンロード。
Windows Grepは多数のファイルに問題があるようだったので、私は自分で作成しました。これはより信頼性が高いようです。フォルダを選択して右クリックし、P-Grepに送信できます。sendtoフォルダーは、インストール中に更新されます。
私はそれを永遠に使用してきました、そして幸いにもそれはまだ利用可能です。それは超高速で非常に小さいです。
私は何年もの間、毎日AJC Grepを使用してきました。私が見つけた唯一の主な制限は、ファイル パスが 255 文字に制限されており、警告を発行するのではなく、ファイル パスに遭遇すると停止することです。面倒ですが、あまり頻繁には起こりません。
私は 64 ビットの Windows 7 Ultimate で使用しているため、64 ビットの資格情報は問題ありません。
マシンにCygwinをインストールし、Cygwin の bin ディレクトリを環境パスに配置したので、Cygwin の grep はコマンド ラインで通常どおりに動作し、現時点で grep に対するすべてのスクリプトのニーズを解決します。
探しているソリューションがまったくない場合は、必要な機能を正確に実行するFindStrのラッパーを作成できますか?
とにかくFindStrは非常に優れているので、GUIをノックアップし(必要に応じて)、いくつかの追加機能を提供する必要があります(Findと組み合わせて、指定された文字列を含むファイルの数を見つけるなど[上記])。
もちろん、これは、これを行うための要件、時間、および意欲があることを前提としています。