it-swarm-eu.dev

Was sind gute grep-Tools für Windows?

Irgendwelche Empfehlungen zu grep Tools für Windows? Idealerweise solche, die 64-Bit-Betriebssysteme nutzen könnten.

Ich weiß natürlich von Cygwin und habe auch PowerGREP gefunden, aber ich frage mich, ob es irgendwelche versteckten Edelsteine ​​gibt?

290
Portman

Aufgrund der Empfehlungen in den Kommentaren habe ich begonnen, grepWin zu verwenden, und es ist fantastisch und kostenlos.


(Ich bin immer noch ein Fan von PowerGREP , aber ich benutze es nicht mehr.)

Ich weiß, dass Sie es bereits erwähnt haben, aber PowerGREP ist fantastisch .

Einige meiner Lieblingsfunktionen sind:

  • Klicken Sie mit der rechten Maustaste auf einen Ordner, um PowerGREP darauf auszuführen
  • Verwenden Sie reguläre Ausdrücke oder wörtlichen Text
  • Geben Sie Platzhalter für Dateien an, die ein- und ausgeschlossen werden sollen
  • Suchen & Ersetzen
  • Der Vorschaumodus ist gut, da Sie sicherstellen können, dass Sie das ersetzen, was Sie beabsichtigen.

Jetzt ist mir klar, dass die anderen grep-Tools all das tun können. Es ist nur so, dass PowerGREP alle Funktionen in einer sehr benutzerfreundlichen Benutzeroberfläche zusammenfasst.

Von den gleichen wundervollen Leuten, die Sie mitgebracht haben RegexBuddy und denen ich nichts mehr zu tun habe, als ihre Sachen zu lieben. (Es sollte beachtet werden, dass RegexBuddy eine Basisversion von grep (für Windows) selbst enthält und viel weniger kostet als PowerGREP.)


Zusätzliche Lösungen

Vorhandene Windows-Befehle

Linux-Befehlsimplementierungen unter Windows

Grep-Tools mit grafischer Oberfläche

Zusätzliche Grep-Tools

194
Mark Biek

FINDSTR ist ziemlich mächtig, unterstützt reguläre Ausdrücke und hat den Vorteil, dass es bereits auf allen Windows-Rechnern läuft.

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

Anwendungsbeispiel: findstr text_to_find * oder rekursiv suchen findstr /s text_to_find *

317
Ray Hayes

GrepWin Freie und Open Source (GPL)

enter image description hereIch habe grepWin verwendet, das von einem der tortoisesvn-Typen geschrieben wurde. Ist der Job unter Windows ...

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

106
Stan Sarama

Update Juli 2013:

Ein weiteres Grep-Tool, das ich jetzt unter Windows immer benutze, ist AstroGrep :

AstroGrep awesomeness

Die Fähigkeit, mir mehr als nur die Zeilensuche anzuzeigen (d. H. --Context = NUM ​​eines Befehlszeilen-Greps), ist von unschätzbarem Wert.
Und es ist schnell. Sehr schnell, auch auf einem alten Computer mit nicht - SSD Laufwerk (Ich weiß, sie haben diese Festplatte mit spinning Scheiben, genannt Platten , verrückt, oder?)

Es ist frei.
Es ist portabel (einfaches Zip-Archiv zum Entpacken).


Originalantwort Oktober 2008

alt textGnu Grep ist in Ordnung

Sie können es zum Beispiel hier herunterladen: ( site ftp )

Alle üblichen Optionen sind hier.

In Kombination mit gawk und xargs (enthält 'find' aus GnuWin32 ) können Sie wirklich Skripte erstellen, als wären Sie unter Unix!

Siehe auch Optionen, mit denen ich rekursiv grep :

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

Das Cmdlet "Select-String" von PowerShell war in Version 1.0 in Ordnung, ist aber deutlich besser für Version 2. . Wenn Sie PowerShell in die neuesten Versionen von Windows integriert haben, sind Ihre Kenntnisse hier immer nützlich, ohne dass Sie zuerst etwas installieren müssen.

Neue Parameter zu Select-String hinzugefügt : Das Cmdlet Select-String unterstützt jetzt neue Parameter wie z.

  • -Kontext: Hiermit können Sie Zeilen vor und nach der Übereinstimmungszeile anzeigen
  • -Alle Übereinstimmungen: Mit dieser Option können Sie alle Übereinstimmungen in einer Zeile anzeigen. (Bisher wurde nur die erste Übereinstimmung in einer Zeile angezeigt.)
  • -NotMatch: Entspricht grep -v o
  • -Encoding: um die Zeichencodierung festzulegen

Ich finde es zweckmäßig, eine Funktion gcir für Get-ChildItem -Recurse ., mit smarts, um Parameter korrekt zu übergeben, und einem Alias ​​ss für Select-String. Also du schreibst:

gcir * .txt | ss foo

30
Jay Bazuzi

Es fällt vielleicht nicht genau in die Kategorie 'grep', aber ich könnte unter Windows nicht ohne ein Hilfsprogramm namens AgentRansack auskommen. Es ist ein GUI-basiertes Dienstprogramm zum Suchen in Dateien mit Regex-Unterstützung. Es ist denkbar einfach, mit der rechten Maustaste auf einen Ordner zu klicken, auf "Durchsuchen" zu klicken und Dateien zu finden, die das enthalten, wonach Sie suchen. Extrem schnell auch.

23
jasonmray

Baregrep ( Baretail ist auch gut)

19
John Sheehan

Es ist ein paar Jahre her, dass Sie die Frage gestellt haben, aber ich würde AstroGrep ( http://astrogrep.sourceforge.net ) empfehlen.

Es ist kostenlos, Open Source und hat eine einfache Oberfläche. Ich benutze es, um ständig nach Code zu suchen.

17
jj.

PowerShell wurde einige Male erwähnt. So würden Sie es tatsächlich auf grausame Weise verwenden:

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

Alle Textdateien im aktuellen Verzeichnisbaum werden rekursiv nach SomeString durchsucht, wobei zwischen Groß- und Kleinschreibung unterschieden wird.

Noch besser:

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

Dann mach:

pgrep SomeStringToSearch *.txt

Fügen Sie dann den Funktionsalias zu Ihrem PowerShell-Profil hinzu, um es wirklich magisch zu machen.

16
jslatts

ack funktioniert gut unter Windows (wenn Sie Perl haben). Ich finde es besser als grep für viele Zwecke.

14
cjm

Cygwin enthält grep. Alle GNU AMD Unix-Tools funktionieren unter Windows hervorragend, wenn Sie Cygwin installieren.

http://www.cygwin.com/

14
Corey Goldberg

Git unter Windows = grep in cmd.exe

Ich habe gerade herausgefunden, dass die Installation von Git einige grundlegende Linux-Befehle liefert: cat, grep, scp und alle anderen guten.

Installieren Sie dann den Git bin-Ordner und fügen Sie ihn Ihrem PATH hinzu. Dann verfügt Ihre cmd.exe über grundlegende Linux-Funktionen!

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

13

dnGREP ist ein Open Source Grep-Tool für Windows. Es unterstützt eine Reihe von coolen Funktionen, darunter:

  • Zum Ersetzen rückgängig machen
  • Möglichkeit der Suche durch Klicken mit der rechten Maustaste auf einen Ordner im Explorer
  • Erweiterte Suchoptionen wie phonetische Suche und xpath
  • Suchen Sie in PDF Dateien, Archiven und Word-Dokumenten

IMHO, es hat auch eine schöne und saubere Oberfläche :)

10
stankovski

Ich benutze immer WinGREP , aber ich hatte Probleme damit, Dateien nicht loszulassen.

7
Tom Kidd

Ich habe GNU-Dienstprogramme für Win32 seit einiger Zeit erfolgreich verwendet und es hat ein gutes grep sowie Tail und andere handliche Gnu-Utils für Win32. Ich vermeide die gepackte Shell und benutze einfach die ausführbaren Dateien direkt in der Eingabeaufforderung von win32.

Der Schwanz, der verpackt ist, ist auch eine ziemlich gute kleine Anwendung.

7
user17314

Nun, neben dem Windows-Port von GNU grep at:

http://gnuwin32.sourceforge.net/

borlands grep (sehr ähnlich zu GNU one)) ist auch in der Freeware Borlands Free C++ Compiler (eine Freeware mit Kommandozeilenwerkzeugen) verfügbar.

7
Milan Babuškov

Ich bin der Autor von Aba Search and Replace. Genau wie PowerGREP unterstützt es reguläre Ausdrücke, speichert Muster zur weiteren Verwendung, macht Ersetzungen rückgängig und zeigt eine Vorschau mit Syntax-Hervorhebung für HTML/CSS/JS/PHP an. verschiedene Kodierungen, einschließlich UTF-8 und UTF-16.

Im Vergleich zu PowerGREP ist die GUI übersichtlicher. Aba beginnt sofort mit der Suche, während Sie das Muster eingeben (inkrementell) Suchen), , damit Sie mit regulären Ausdrücken experimentieren und sofort die Ergebnisse sehen können.

Sie sind herzlich eingeladen, mein Werkzeug auszuprobieren. Gerne beantworte ich Ihre Fragen.

6
Peter Kankowski

Ich wollte ein kostenloses grep-Tool für Windows, mit dem Sie mit der rechten Maustaste auf einen Ordner klicken und eine reguläre Suche in jeder Datei durchführen können - ohne nörgelnden Bildschirm.

Das Folgende ist eine schnelle Lösung, die auf dem in einem vorherigen Beitrag erwähnten findstr basiert.

Erstellen Sie eine Textdatei irgendwo auf Ihrer Festplatte, in der Sie langlebige Werkzeuge aufbewahren. Benennen Sie in .bat oder .cmd um und fügen Sie Folgendes ein:

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

Navigieren Sie dann zum Ordner SendTo. Navigieren Sie unter Windows 7 zu %APPDATA%\Microsoft\Windows\SendTo Und ziehen Sie eine Verknüpfung der Stapeldatei in diesen SendTo-Ordner.

Ich habe die Verknüpfung in 1 GREP Umbenannt, damit sie in der SendTo-Liste ganz oben bleibt.

Als Nächstes möchte ich die Ausgabe von findstr durch etwas leiten, das eine HTML-Datei generiert, sodass Sie auf jede Ausgabezeile klicken können, um diese Datei zu öffnen. Ich glaube auch nicht, dass es mit Verknüpfungen zu Ordnern funktioniert. Ich müsste den Parameter überprüfen und sehen, ob er ".lnk" enthält.

4
Philip Beck

Mein Werkzeug der Wahl ist das entsprechend benannte Windows Grep :

  • Schöne einfache GUI
  • unterstützt Suchen und Ersetzen
  • kann die Linien um die gefundenen Linien anzeigen
  • kann in Spalten in CSVs und Dateien mit fester Breite suchen
3
John N

nxUtils ist die, die ich benutze, funktioniert perfekt für mich ...

3
Johan

Ich habe jahrelang Borlands Grep benutzt, aber nur ein Muster gefunden, das nicht passt. Augen. Was hat es im Laufe der Jahre noch nicht gefunden? Ich habe einen einfachen Ersatz für die Textsuche geschrieben, der eine Rekursion wie grep ausführt - es ist FS.EXE on Source Forge.

grep schlägt fehl ...

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

windows Findstr funktioniert ...

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

Die PowerShell-Auswahlzeichenfolge ist ähnlich. Sie weist nicht dieselben Optionen und dieselbe Semantik auf, ist aber dennoch leistungsstark.

2
Jim Deville

Wenn Sie ein einfach zu bedienendes Windows Grep-Tool haben möchten, habe ich ein P-Grep-Tool erstellt, das ich auf meiner Website zum kostenlosen Download zur Verfügung gestellt habe: www.adjutantit.com - Startmenü, Downloads.

Windows Grep schien Probleme mit einer großen Anzahl von Dateien zu haben, daher habe ich meine eigenen geschrieben - was zuverlässiger zu sein scheint. Sie können einen Ordner auswählen, mit der rechten Maustaste klicken und ihn an P-Grep senden. Der Ordner sendto wird während der Installation nicht mehr aktualisiert.

2
John Pember

Eine andere gute Wahl ist MSYS . Es gibt Ihnen eine Reihe anderer GNU Hilfsprogramme, mit denen Sie produktiver arbeiten können.

2
DDay

GREP für Windows

Ich benutze es schon immer und zum Glück ist es immer noch verfügbar. Es ist super schnell und sehr klein.

1
bbrown

Ich benutze AJC Grep seit Jahren täglich. Die einzige wichtige Einschränkung, die ich festgestellt habe, ist, dass Dateipfade auf 255 Zeichen beschränkt sind und angehalten werden, wenn sie auf eines treffen, anstatt nur eine Warnung auszugeben. Es ist nervig, kommt aber nicht sehr oft vor.

Ich verwende es auf 64-Bit-Windows 7 Ultimate, daher sind die 64-Bit-Anmeldeinformationen in Ordnung.

1
CrispinH

Ich habe Cygwin auf meinem Computer installiert und das Verzeichnis Cygwin bin in meinen Umgebungspfad eingefügt, sodass Cygwin grep wie gewohnt in einer Befehlszeile funktioniert, die im Moment alle meine Skriptanforderungen für grep löst.

0
Satyrn

Wenn keine der Lösungen genau das ist, wonach Sie suchen, könnten Sie vielleicht einen Wrapper für FindStr schreiben, der genau das tut, was Sie benötigen?

FindStr ist ohnehin ziemlich gut, daher sollte es nur eine grafische Benutzeroberfläche (wenn Sie es möchten) in den Griff bekommen und ein paar zusätzliche Funktionen bereitstellen (z. B. die Kombination mit Find, um die Anzahl der Dateien zu ermitteln, die eine bestimmte Zeichenfolge enthalten [oben erwähnt]).

Dies setzt natürlich voraus, dass Sie die Voraussetzungen, die Zeit und die Neigung dazu haben!

0
Stefan