Quels sont les bons outils grep pour Windows? [fermé]

Recommandations sur grep outils pour Windows? Idéalement ceux qui pourraient tirer parti du système d'exploitation 64 bits.

Je suis au courant de Cygwin , Bien sûr, et j'ai également trouvé PowerGREP , mais je me demande s'il y a des joyaux cachés là-bas?

291
demandé sur Portman 2008-09-18 00:34:48

28 réponses

Sur la base des recommandations dans les commentaires, j'ai commencé à utiliser grepWin et c'est fantastique et gratuit.


(je suis toujours fan de PowerGREP , mais je ne l'utilise plus.)

Je sais que vous l'avez déjà mentionné, mais PowerGREP est génial.

Certains de mes fonctionnalités préférées sont:

  • faites un clic droit sur un dossier pour y lancer PowerGREP
  • utiliser des expressions régulières ou du texte littéral
  • spécifiez des caractères génériques pour fichiers à inclure et exclure
  • rechercher et remplacer
  • le mode Aperçu est agréable parce que vous pouvez vous assurer que vous remplacez ce que vous avez l'intention de.

Maintenant, je me rends compte que les autres outils grep peuvent faire tout ce qui précède. C'est juste que PowerGREP empaquette toutes les fonctionnalités dans une interface graphique très facile à utiliser.

des mêmes gens merveilleux qui vous ont apporté RegexBuddy et avec qui je n'ai aucune affiliation au-delà d'aimer leurs affaires. (Il devrait notez que RegexBuddy inclut une version de base de grep (pour Windows) lui-même et cela coûte beaucoup moins cher que PowerGREP.)


Solutions supplémentaires

Commandes Windows existantes

Implémentations de commandes Linux sous Windows

Outils Grep avec un graphique interface

Outils Grep supplémentaires

172
répondu Mark Biek 2016-11-10 09:00:02

FINDSTR est assez puissant, supporte Les expressions régulières et a les avantages d'être déjà sur toutes les machines 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

Exemple d'utilisation: findstr text_to_find *, ou rechercher de manière récursive findstr /s text_to_find *

305
répondu Ray Hayes 2015-12-29 23:55:39

GrepWin Libre et open source (GPL)

entrez la description de l'image iciJ'ai utilisé grepWin qui a été écrit par l'un des gars de tortoisesvn. Fait le travail sur Windows...

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

103
répondu Shannon 2015-04-14 11:31:42

Mise À Jour Juillet 2013:

Un Autre outil grep maintenant j'utilise tout le temps sur Windows AstroGrep:

AstroGrep awesomeness

Sa capacité à me montrer plus que la simple recherche de ligne (c'est-à-dire le --context=NUM d'un grep de ligne de commande) est inestimable.
Et il est rapide. Très rapide, même sur un vieil ordinateur avec non - SSD Lecteur (je sais, ILS l'habitude de faire ce disque dur avecspinning disques, appelés plateaux , Droit fou?)

C'est gratuit.
Il est portable (archive zip simple à décompresser).


Réponse originale octobre 2008

Gnu Grep est bien

Vous pouvez le télécharger par exemple ici: (site FTP )

Toutes les options habituelles sont ici.

Cela, combiné avec gawk et xargs (inclut 'find', à partir de GnuWin32), et vous pouvez vraiment écrire comme si vous étiez sur Unix!

Voir aussi les options que j'utilise pour grep récursivement :

grep --include "*.xxx" -nRHI "my Text to grep" *
51
répondu VonC 2017-05-23 12:26:23

L'applet de commande Select-String de PowerShell était bien dans la version 1.0, mais elle est nettement meilleure pour la version 2.0 . Avoir PowerShell intégré aux versions récentes de Windows signifie que vos compétences ici seront toujours utiles, sans d'abord installer quelque chose.

Nouveaux paramètres ajoutés à Select-String : l'applet de commande Select-String prend désormais en charge de nouveaux paramètres, tels que:

  • - contexte: cela vous permet de voir les lignes avant et après la ligne de correspondance
  • - AllMatches: ce qui vous permet de voir toutes les correspondances dans une ligne (auparavant, vous ne pouviez voir que la première correspondance dans une ligne)
  • - NotMatch: équivalent à grep-v o
  • - Encoding: pour spécifier l'encodage des caractères

Je trouve opportun de créer une fonction gcir pour Get-ChildItem -Recurse ., avec des astuces pour passer correctement les paramètres, et un alias ss pour Select-String. Donc, vous une écriture:

Gcir *.txt / ss foo

30
répondu Jay Bazuzi 2011-03-12 03:31:32

Il peut ne pas tomber exactement dans la catégorie' grep' , mais je ne pouvais pas m'en sortir sous Windows sans un utilitaire appelé AgentRansack . C'est un utilitaire "find in files" basé sur l'interface graphique avec le support de regex. Il est mort simple de faire un clic droit sur un dossier, cliquez sur " ransack.."et trouver des fichiers contenant ce que vous cherchez. Extrêmement rapide.

22
répondu jasonmray 2008-09-18 06:11:01

Baregrep (Baretail est bon aussi)

19
répondu John Sheehan 2008-09-17 20:38:25

Cela fait quelques années que vous avez posé la question, mais je recommanderais AstroGrep ( http://astrogrep.sourceforge.net).

C'est gratuit, open source, et a une interface simple. Je l'utilise pour rechercher du code tout le temps.

17
répondu jj. 2010-08-13 15:06:53

PowerShell a été mentionné à quelques reprises. Voici comment vous l'utiliseriez réellement de manière grepish:

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

Il recherche récursivement tous les fichiers texte dans l'arborescence de répertoires en cours pour SomeString avec une sensibilité à la casse.

Encore mieux, exécutez ceci:

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

Alors faites:

pgrep SomeStringToSearch *.txt

Ensuite, pour vraiment le rendre magique, ajoutez l'alias de fonction à votre profil PowerShell et vous pouvez presque atténuer la douleur de ne pas avoir d'outils de ligne de commande appropriés.

16
répondu jslatts 2015-01-18 23:32:40

Cygwin comprend grep. Tous les outils GNU AMD Unix stuff fonctionne très bien sur Windows si vous installez Cygwin.

Http://www.cygwin.com/

14
répondu Corey Goldberg 2008-09-17 20:40:57

Ack fonctionne bien sur Windows (si vous avez Perl). Je trouve mieux que grep pour de nombreuses utilisations.

13
répondu Peter Mortensen 2015-01-18 23:30:02

Git sur Windows = grep dans cmd.exe

Je viens de découvrir que l'installation de Git vous donnera quelques commandes Linux de base: cat, grep, scp et toutes les autres bonnes.

Installez puis ajoutez le dossier git bin à votre chemin, puis votre cmd.exe a des fonctionnalités Linux de base!

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

12
répondu Daniel Magnusson 2015-01-18 23:38:52

DnGREP est un outil grep open source pour Windows. Il prend en charge un certain nombre de fonctionnalités intéressantes, y compris:

  • Annuler pour remplacer
  • possibilité de rechercher par un clic droit sur le dossier dans l'Explorateur
  • Options de recherche avancées telles que la recherche phonétique et xpath
  • Recherche dans les fichiers PDF, les archives et les documents Word

IMHO, il a une interface agréable et propre aussi:)

10
répondu stankovski 2015-01-18 23:33:30

J'utilise toujours WinGREP , mais j'ai eu des problèmes avec ne pas lâcher de fichiers.

7
répondu Tom Kidd 2008-09-17 20:36:35

Eh bien, à côté du port Windows du GNU grep à:

http://gnuwin32.sourceforge.net/

Il y a aussi le GREP de Borland (très similaire à GNU one) disponible dans le compilateur C++ gratuit de Borland (c'est un freeware avec des outils de ligne de commande).

7
répondu Milan Babuškov 2008-09-17 21:17:26

J'ai utilisé avec succès GNU utilities pour Win32 pendant un certain temps et il a un bon grep ainsi que tail et d'autres utilitaires gnu pratiques pour win32. J'évite le shell emballé et utilise simplement les exécutables directement dans l'invite de commande win32.

La queue qui est emballée est également une bonne petite application.

7
répondu user17314 2008-09-18 06:37:26

Je suis l'auteur de Aba de Recherche et de remplacement. tout comme PowerGREP, il prend en charge les expressions régulières, l'enregistrement des motifs pour une utilisation ultérieure, l'annulation pour les remplacements, l'Aperçu avec la surbrillance syntaxique pour HTML/CSS/JS/PHP, différents encodages, y compris UTF-8 et UTF-16.

En comparaison avec PowerGREP, l'interface graphique est moins encombrée. Aba commence instantanément la recherche lorsque vous tapez le motif (recherche incrémentielle), afin que vous puissiez expérimenter avec des expressions régulières et voir immédiatement les résultats.

Vous êtes invités à essayer mon outil; je serai heureux de répondre à toutes les questions.

6
répondu Peter Kankowski 2011-12-12 03:32:12

Je voulais un outil grep gratuit pour Windows qui vous permettait de cliquer avec le bouton droit sur un dossier et de faire une recherche regex de chaque fichier-sans écran nag.

Ce qui suit est une solution rapide basée sur le findstr mentionné dans un post précédent.

Créez un fichier texte quelque part sur votre disque dur où vous conservez des outils de longue durée. Renommer .bat ou .cmd et collez-y ce qui suit:

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

Ensuite, naviguez jusqu'au dossier SendTo. Sous Windows 7 accédez à %APPDATA%\Microsoft\Windows\SendTo et faites glisser un raccourci de le fichier batch dans ce dossier SendTo.

J'ai renommé le raccourci 1 GREP pour le garder en haut de l'Envoyer à la liste.

Les choses que je voudrais faire ensuite avec ceci sont de diriger la sortie de findstr à travers quelque chose qui générerait un fichier html afin que vous puissiez cliquer sur chaque ligne de sortie pour ouvrir ce fichier. En outre, Je ne pense pas que cela fonctionne avec des raccourcis vers des dossiers. Je devrais inspecter le paramètre et voir s'il contient ".lnk".

4
répondu Philip Beck 2011-06-24 11:54:54

UnxUtils est celui que j'utilise, fonctionne parfaitement pour moi...

3
répondu Johan 2008-09-18 06:00:17

J'ai utilisé le GREP de Borland pendant des années mais je viens de trouver un motif qui ne correspondra pas. Eeeks. Qu'est-ce qu'il n'a pas trouvé d'autre au fil des ans? J'ai écrit un simple remplacement de recherche de texte qui fait la récursivité comme grep-C'est FS.EXE sur Source forge.

Grep échoue...

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

Windows findstr fonctionne...

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
répondu Jerry Lusa 2011-06-24 11:56:54

Mon outil de choix est le nom approprié Windows Grep :

  • Belle interface graphique simple
  • prend en charge la recherche et le remplacement
  • peut afficher les lignes autour des lignes trouvées
  • peut rechercher dans des colonnes dans des fichiers CSV et des fichiers à Largeur fixe
3
répondu John N 2011-10-10 15:25:59

Si vous voulez un outil simple à utiliser Windows Grep, j'ai créé un appelé P-Grep que j'ai mis à disposition pour téléchargement gratuit à partir de mon site web: www.adjutantit.com -menu d'accueil, téléchargements.

Windows Grep semblait avoir des problèmes avec un grand nombre de fichiers, donc j'ai écrit le mien - ce qui semble plus fiable. Vous pouvez sélectionner un dossier, faire un clic droit et l'Envoyer à P-Grep. Le dossier sendto n'est pas daté lors de l'installation.

2
répondu John Pember 2011-09-07 00:16:33

Un Autre bon choix est MSYS. Il vous donne un tas d'autres utilitaires GNU pour vous permettre d'être plus productif.

2
répondu DDay 2011-09-08 05:42:12

La chaîne select de PowerShell est similaire, ce ne sont pas les mêmes options et la même sémantique, mais elle est toujours puissante.

1
répondu Jim Deville 2008-09-17 20:36:00

J'utilise AJC Grep tous les jours depuis des années. La seule limitation majeure que j'ai trouvée est que les chemins de fichiers sont limités à 255 caractères et qu'ils s'arrêtent quand ils en rencontrent un, plutôt que de simplement émettre un avertissement. C'est ennuyeux mais cela n'arrive pas très souvent.

Je l'utilise sur Windows 7 Ultimate 64 bits, donc ses informations d'identification 64 bits sont correctes.

1
répondu CrispinH 2011-12-21 11:57:28

GREP pour Windows

Je l'utilise depuis toujours et heureusement, il est toujours disponible. C'est super rapide et très petit.

1
répondu bbrown 2012-01-05 23:02:02

Si aucune des solutions n'est tout à fait ce que vous cherchez, peut-être pourriez-vous écrire un wrapper à FindStr qui fait exactement ce dont vous avez besoin?

FindStr est assez bon de toute façon, il devrait juste frapper une interface graphique (si vous le voulez) et fournir quelques fonctionnalités supplémentaires (comme le combiner avec Find pour trouver le nombre de fichiers qui contiennent une chaîne spécifiée [mentionné ci-dessus]).

Ceci, bien sûr, suppose que vous avez l'exigence, le temps et l'envie de le faire!

0
répondu Stefan 2012-02-20 16:55:32

J'ai Cygwin installé sur ma machine et mis le répertoire Cygwin bin dans mon chemin environnemental, donc le Cygwin grep fonctionne comme d'habitude dans une ligne de commande qui résout tous mes besoins de script pour grep en ce moment.

0
répondu Peter Mortensen 2015-01-18 23:36:50