it-swarm-eu.dev

Jaké jsou dobré grepové nástroje pro Windows?

Nějaká doporučení ohledně grep nástrojů pro Windows? V ideálním případě ty, které by mohly využívat 64bitový operační systém.

Vím o Cygwin , samozřejmě, a také jsem našel PowerGREP , ale zajímalo by mě, jestli jsou tam nějaké skryté drahokamy?

290
Portman

Na základě doporučení v komentářích jsem začal používat grepWin a je to fantastické a zdarma .


(Stále jsem fanouškem PowerGREP , ale už ho nepoužívám.)

Vím, že jste to již zmínili, ale PowerGREP je úžasné .

Některé z mých oblíbených funkcí jsou:

  • Klepnutím pravým tlačítkem na složku spustíte PowerGREP
  • Používejte regulární výrazy nebo doslovný text
  • Určete zástupné znaky pro soubory, které mají být zahrnuty a vyloučeny
  • Hledat a nahradit
  • Režim náhledu je pěkný, protože můžete zajistit, že nahradíte to, co zamýšlíte.

Teď si uvědomuji, že ostatní grepové nástroje dokážou všechno výše uvedené. Je to jen to, že PowerGREP balí všechny funkce do velmi snadno použitelného GUI.

od stejných úžasných lidí, kteří vás přivedli RegexBuddy a s nimiž nemám žádné vztahy, kromě milování jejich věcí. (Je třeba poznamenat, že RegexBuddy obsahuje samotnou základní verzi grep (pro Windows) a stojí mnohem méně než PowerGREP.)


Další řešení

Existující příkazy systému Windows

Implementace příkazů systému Linux ve Windows

Grep nástroje s grafickým rozhraním

Další nástroje Grep

188
Mark Biek

FINDSTR je poměrně silný, podporuje regulární výrazy a má výhody, že je na všech počítačích se systémem 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

Příklad použití: findstr text_to_find * nebo pro rekurzivní vyhledávání findstr /s text_to_find *

315
Ray Hayes

GrepWin Zdarma a open source (GPL)

enter image description herePoužíval jsem grepWin, který napsal jeden z želvovin. Má práce na Windows ...

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

104
Stan Sarama

Aktualizace července 2013:

Dalším grepovým nástrojem, který nyní používám na Windows, je AstroGrep :

AstroGrep awesomeness

Jeho schopnost ukázat mi víc než jen hledání v řádku (tj. --Context = NUM ​​grep příkazového řádku) je neocenitelná.
A je to rychlé. Velmi rychle, dokonce i na starém počítači s ne - SSD jednotkou (vím, že to dělali na tomto pevném disku s točícími se disky, nazvanými talíře , bláznivé, že?)

Je to zdarma.
Je přenosný (jednoduchý archiv ZIP pro rozbalení).


Původní odpověď říjen 2008

alt textGnu Grep je v pořádku

Můžete si jej stáhnout například zde: ( site ftp )

Všechny obvyklé možnosti jsou zde.

To v kombinaci s gawk a xargs (zahrnuje 'find', from GnuWin32 ) a můžete opravdu skriptovat, jako byste byli na Unixu!

Viz také možnosti, které používám pro rekurzivní grep :

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

Cmshlet produktu PowerShell Select-String byl v v1.0 v pořádku, ale je výrazně lepší pro v2. . Díky vestavěné verzi PowerShell do nejnovějších verzí systému Windows budou vaše dovednosti vždy užitečné, aniž byste něco nejprve nainstalovali.

Nové parametry přidané do Select-String : cmdlet Select-String nyní podporuje nové parametry, jako například:

  • -Context: To vám umožní vidět řádky před a za zápasovou linkou
  • -Všechny zápasy: což vám umožní zobrazit všechny zápasy v řadě (Dříve jste viděli pouze první shodu v řadě)
  • -NotMatch: Ekvivalentní grep-v o
  • -Kódování: specifikuje kódování znaků

Považuji za účelné vytvořit funkci gcir pro Get-ChildItem -Recurse ., s smarts pro správné předávání parametrů a alias ss pro Select-String. Takže píšete:

gcir * .txt | ss foo

30
Jay Bazuzi

To nemusí přesně spadat do kategorie 'grep', ale nemohl jsem se dostat na Windows bez nástroje zvaného AgentRansack . Je to gui založený nástroj „najít v souborech“ s podporou regexu. Je mrtvé jednoduché kliknout pravým tlačítkem myši na složku, stisknout tlačítko „výkupné ...“ a najít soubory obsahující to, co hledáte. Také velmi rychle.

23
jasonmray

Baregrep ( Baretail je také dobrý)

19
John Sheehan

Je to už pár let, co jste položili otázku, ale doporučil bych AstroGrep ( http://astrogrep.sourceforge.net ).

Je to zdarma, open source a má jednoduché rozhraní. Používám jej k hledání kódu po celou dobu.

17
jj.

PowerShell byl zmíněn několikrát. Zde je návod, jak byste ho ve skutečnosti použili grepish způsobem:

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

Rekurzivně prohledává ve všech textových souborech v aktuálním adresářovém stromu SomeString s rozlišováním velkých a malých písmen.

Ještě lépe, spusťte toto:

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

Pak proveďte:

pgrep SomeStringToSearch *.txt

Pak, aby to bylo opravdu kouzelné, přidejte funkční alias do svého PowerShell Profile a můžete téměř zmatit bolest, že nemáte správné nástroje příkazového řádku.

16
jslatts

Cygwin zahrnuje grep. Všechny nástroje GNU nástroje AMD Unix fungují na Windows skvěle, pokud instalujete Cygwin.

http://www.cygwin.com/

14
Corey Goldberg

ack funguje dobře na Windows (pokud máte Perl ). Připadá mi to lepší než grep pro mnoho použití.

13
cjm

Git ve Windows = grep v cmd.exe

Právě jsem zjistil, že instalace Git vám dá několik základních linuxových příkazů: kočka, grep, scp a všechny další dobré.

Nainstalujte a poté do složky PATH přidejte složku Git bin a poté váš cmd.exe má základní funkce systému Linux!

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

13
Daniel Magnusson

dnGREP je open source grep nástroj pro Windows. Podporuje řadu skvělých funkcí včetně:

  • Vrátit zpět pro nahrazení
  • Schopnost vyhledávání pravým kliknutím na složku v Průzkumníku
  • Pokročilé možnosti vyhledávání, jako je fonetické vyhledávání a xpath
  • Hledejte uvnitř PDF souborů, archivů a dokumentů Wordu

IMHO, má také pěkné a čisté rozhraní :)

10
stankovski

Vždy používám WinGREP , ale měl jsem problémy s tím, abych nepustil soubory.

7
Tom Kidd

Úspěšně jsem používal GNU utilities pro Win32 nějakou dobu a má dobrý grep i ocas a další užitečné gnu utils pro win32. Zabalím se zabalenému prostředí Shell a jednoduše použiji spustitelné soubory přímo v příkazu win32 Prompt.

Tail, který je zabalen, je docela dobrá malá aplikace.

7
user17314

No, vedle Windows portu GNU grep na:

http://gnuwin32.sourceforge.net/

je zde také Borlandův grep (velmi podobný GNU one) dostupný v freewaru Borland Free C++ Compiler (je to freeware s nástroji příkazového řádku).

7
Milan Babuškov

Jsem autorem Aba Search and Replace. Stejně jako PowerGREP, podporuje regulární výrazy, ukládání vzorů pro další použití, vrácení zpět pro nahrazení, náhled se zvýrazněním syntaxe pro HTML/CSS/JS/PHP, různá kódování, včetně UTF-8 a UTF-16.

Ve srovnání s PowerGREP je GUI méně zaplněný. Aba okamžitě začne hledat, když píšete vzor (inkrementálně) vyhledávání), , takže můžete experimentovat s regulárními výrazy a okamžitě vidět výsledky.

Jste vítáni, abyste vyzkoušeli můj nástroj; Rád zodpovím jakékoli dotazy.

6
Peter Kankowski

Chtěl jsem bezplatný grep nástroj pro Windows, který vám umožnil kliknout pravým tlačítkem na složku a provést regexové vyhledávání každého souboru - bez jakékoli nag obrazovky.

Následuje rychlé řešení založené na findstr uvedeném v předchozím příspěvku.

Vytvořte textový soubor někde na pevném disku, kde budete mít nástroje s dlouhou životností. Přejmenujte na .bat nebo .cmd a do něj vložte následující:

@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"

Poté přejděte do složky SendTo. Ve Windows 7 přejděte na %APPDATA%\Microsoft\Windows\SendTo a přetáhněte zástupce dávkového souboru do této složky SendTo.

Tuto zkratku jsem přejmenoval na 1 GREP, abych ji udržel v horní části seznamu SendTo.

Věci, které bych s tím ráda udělala dále, jsou výstupy findstr pomocí kanálu, který by vygeneroval soubor html, takže kliknutím na každý výstupní řádek otevřete tento soubor. Také si nemyslím, že to funguje se zástupci do složek. Musel bych zkontrolovat parametr a zjistit, jestli obsahuje ".lnk".

4
Philip Beck

Můj nástroj výběru je vhodně pojmenovaný Windows Grep :

  • Pěkné jednoduché GUI
  • podporuje vyhledávání a nahrazování
  • může zobrazit řádky kolem nalezených řádků
  • můžete vyhledávat ve sloupcích v souborech CSV a souborech s pevnou šířkou
3
John N

nxUtils je ten, který používám, perfektně pro mě funguje ...

3
Johan

Borlandův grep jsem používal celé roky, ale našel jsem jen vzor, ​​který se nebude shodovat. Eeeks. Co jiného to v průběhu let nenalezlo? Napsal jsem jednoduchou náhradu textového vyhledávání, která má rekurzi jako grep - je to FS.EXE na zdrojovém kování.

grep selže ...

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

windows findstr funguje ...

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
Jerry Lusa

Pokud chcete snadno používat nástroj Windows Grep, vytvořil jsem nástroj s názvem P-Grep, který jsem zpřístupnil ke stažení zdarma z mého webu: www.adjutantit.com - domovské menu, soubory ke stažení.

Zdálo se, že Windows Grep měl problémy s velkým počtem souborů, takže jsem napsal vlastní - což se zdá spolehlivější. Můžete si vybrat složku, kliknout pravým tlačítkem a odeslat ji P-Grep. Složka sendto se během instalace nezmění.

2
John Pember

Další dobrá volba je MSYS . Dává vám spoustu dalších nástrojů [GNU], které vám umožní být produktivnější.

2
DDay

GREP pro Windows

Používal jsem to navždy a naštěstí je stále k dispozici. Je to velmi rychlé a velmi malé.

1
bbrown

Výběrový řetězec PowerShell je podobný, nejedná se o stejné možnosti a sémantiku, ale je stále silný.

1
Jim Deville

Používám AJC Grep denně po celá léta. Jediné hlavní omezení, které jsem našel, je to, že cesty k souborům jsou omezeny na 255 znaků a zastaví se, když narazí na jeden, spíše než jen na varování. Je to nepříjemné, ale nestává se to příliš často.

Používám jej na 64bitových Windows 7 Ultimate, takže jeho 64bitové přihlašovací údaje jsou v pořádku.

1
CrispinH

Mám na svém počítači Cygwin nainstalovaný a do své ekologické cesty jsem vložil adresář bin Cygwin, takže Cygwin grep pracuje jako normální v příkazovém řádku, který v tuto chvíli řeší všechny mé skriptovací potřeby grep.

0
Satyrn

Pokud žádné z řešení není přesně to, co hledáte, možná byste mohli napsat obálku do FindStr, která dělá přesně to, co požadujete?

FindStr je v každém případě docela dobrý, takže by to mělo být pouze klepání GUI nahoru (pokud chcete) a poskytování několika dalších funkcí (jako je kombinace s Find najít počet souborů, které obsahují zadaný řetězec [výše uvedené]).

To samozřejmě předpokládá, že máte požadavek, čas a sklon k tomu!

0
Stefan