287 votes

Équivalent de Grep pour Windows 7?

Y a-t-il un équivalent de la commande grep pour Windows 7? En d'autres termes, je veux filtrer les résultats d'une commande:

Utilisation de Bash:

ls | grep root

Que serait-il en utilisant l'invite de commandes Windows?

10 votes

Ne confondez pas MS-DOS avec l'invite de commandes. + L'utilisation de find et findstr et même grep, pour Windows.. se trouve sûrement facilement avec une recherche rapide. Il existe même des tableaux de commandes équivalentes dans Linux et Windows. De plus, votre exemple bash n'est même pas spécifique à bash.. juste je suppose, un OS *nix.

4voto

vladkras Points 160

Utilisation de Bash

$ ls | grep root

Utilisation de Cmd

> dir /b | findstr root

/b signifie une liste bare de répertoires et de fichiers

0 votes

@DavidPostill, ne vous en faites pas, mais la réponse acceptée contient plusieurs clés excessives et non expliquées /B, /R et /C sur lesquelles l'OP n'avait pas demandé, tandis que ma réponse donne l'équivalent exact

0 votes

Le /b est utilisé pour rendre la sortie de dir identique à la sortie de ls. Si vous le testez, vous verrez la différence. Donc ce n'est pas l'équivalent exact.

2 votes

Cela duplique une autre réponse et n'ajoute aucun contenu nouveau. S'il vous plaît ne publiez pas une réponse à moins que vous ayez réellement quelque chose de nouveau à apporter.

3voto

Atur Points 525

Vous pouvez essayer d'installer Chocolatey sur Windows, et à travers cela, installer l'outil Gow. Cela vous fournira grep sur Windows.

Gow signifie GNU sur Windows. Il fournit des utilitaires de ligne de commande Unix sur Windows.

1 votes

C'est un gestionnaire de packages, comme un apt-get mais pour Windows. Il a été nommé ainsi car le développeur l'a basé sur NuGet qui est un gestionnaire de packages pour Visual Studio, et que ça ressemble à nugget (comme dans nugget de poulet), alors il a pensé qu'il serait "drôle" ou "intelligent" d'appeler son programme Chocolatey NuGet. J'ai entendu ça dans un podcast qui l'a interviewé. Gow peut également être téléchargé indépendamment.

1 votes

Je suis nouveau sur Gow, après quelques jours d'utilisation je peux témoigner que j'aime beaucoup - c'est mieux que tous les anciens ports d'utils UNIX que j'avais utilisés auparavant.

0 votes

@RadimCernej votre commentaire n'est pas utile à moins que vous ne précisiez comment vous pensez qu'il est meilleur.

3voto

krowe Points 5343

J'ai écrit une alternative à grep pour Windows en utilisant un code Hybride Batch/JScript. J'ai écrit cela car réussir à obtenir les caractères d'échappement corrects dans le port GNU Win32 grep était vraiment pénible. Cette version fonctionne beaucoup plus comme vous voudriez que la version GNU fonctionne sous Windows :

@set @junk=1 /*
@cscript //nologo //E:jscript %~f0 %*
@goto :eof */

var args=WScript.Arguments, argCnt=args.Length, stdin=WScript.StdIn, stdout=WScript.StdOut;
var replaceSingleQuotes=false, printMatchesOnly=false, matchString, flagString, regex, argDx=0;

if(argCnt==0) {
    throw new Error("Vous devez fournir des critères de recherche.");
}

flagString=""
if(argCnt>1) {
    for(var bLoop=true; bLoop&&argDx

`

Vous pouvez toujours trouver la dernière version sur ma page Gist pour ceci.

`

1voto

Henrico Points 836

http://www.multireplacer.com

Le programme Multi Replacer a été préparé de manière à ce que de nombreuses fonctions puissent être exécutées en utilisant des paramètres de ligne de commande. L'utilisation en ligne de commande est présentée ci-dessous :

MultiReplacer [Fichier Multi Replacer] | [Fichiers de recherche] | [Dossiers de recherche]
[-Subs] [-NoSubs] [-IncPtr=pattern] [-ExcPtr=patterns] [-DestDir=destination]
[-DMAnyTime]
[-DMWithinanhour] [-DMToday] [-DMYesterday] [-DMThisweek] [-DMThismonth]
[-DMThisYear]
[-CDMAfter=date] [-CDMBefore=date] [-MinFileSize=bytes count]
[-MaxFileSize=bytes count]
[-Search=text] [-Case] [-NoCase] [-Regex] [-NoRegex] [-SubMatchText=text]
[-ReplaceText=text]
[-StartSearch] [-StartReplace] [-AutoClose] [-StopAfterMatchThisFile] [-StopAfterMatchAll]
[-ExtractedWordsFile=filename] [-ExtractedLinesFile=filename] [-
ReportFile=filename]

0voto

thucnguyen Points 839

Vous pouvez toujours utiliser votre grep familier et d'autres commandes Linux en téléchargeant cet outil UnxUtils et en ajoutant son emplacement à votre variable d'environnement PATH

0 votes

Unxutils grep n'est pas si tardif que vous pouvez l'obtenir .. unx grep est 2.4.2 mais gnuwin32 a une version plus récente 2.5.4

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X