Fatigué d’utiliser les mêmes vieux outils de recherche sur votre machine, comme grep ? Pourquoi se contenter de ça ? De nombreux équivalents de grep dans Windows peuvent vous aider à rechercher précisément ce que vous cherchez.
Dans ce tutoriel, vous apprendrez comment ces équivalents de grep rendent possible la recherche dans les fichiers plus rapide et vous permettent de trouver l’information dont vous avez besoin en un clin d’œil.
Restez à l’écoute et liez-vous d’amitié avec des outils de recherche puissants !
Prérequis
Ce tutoriel comprend des démonstrations pratiques. Pour suivre, assurez-vous d’avoir les éléments suivants en place :
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell – Ce tutoriel utilise PowerShell 7.2.8.
- scoop – Ce tutoriel utilise scoop v0.3.1.
Recherche de Chaînes de Texte Spécifiques (findstr
) Dans les Fichiers
Pouvoir repérer instantanément des chaînes de texte spécifiques (avec des motifs particuliers) que vous cherchez dans un fichier aide grandement votre flux de travail. Mais comment ? Tournez-vous vers l’utilitaire en ligne de commande findstr
dans Windows, qui vous permet de rechercher des chaînes de texte spécifiques dans les fichiers.
findstr
est souvent utilisé comme équivalent de grep sous Windows, car il a des fonctionnalités similaires à la commande Unix grep
. Quels sont les avantages d’utiliser findstr
? Un exemple est qu’il est intégré à tout système d’exploitation Windows (OS) — aucun logiciel supplémentaire n’est requis.
Pour trouver des chaînes spécifiques dans un fichier, suivez ces étapes:
Créez un fichier texte avec votre éditeur de texte préféré, nommez-le notes.txt, et peuplez le contenu ci-dessous dans le fichier.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
Maintenant, ouvrez PowerShell en tant qu’administrateur et exécutez la commande ci-dessous pour trouver des chaînes (findstr
) correspondant au motif de recherche (”apple"
) dans le fichier notes.txt
.
? findstr dispose de nombreux paramètres qui peuvent être utilisés pour personnaliser la recherche. Mais dans ce tutoriel, vous explorerez certains des paramètres les plus précieux lors de la recherche de chaînes dans les fichiers.

? Peut-être recherchez-vous des chaînes dans plusieurs fichiers. Si c’est le cas, spécifiez les chemins des fichiers séparés par des espaces, comme ci-dessous:
findstr parameters "pattern" "C:\\chemin\\vers\\fichier1.txt" "C:\\chemin\\vers\\fichier2.txt"
Recherche de chaînes correspondant à un motif spécifique ou littéral
Lorsque vous travaillez avec des fichiers de configuration, trouver des chaînes dans un motif spécifique ou littéral est crucial, surtout lors du débogage. Heureusement, le paramètre /c
indique à la commande findstr
de rechercher des chaînes littérales qui correspondent à un motif spécifié, y compris les espaces ou les caractères spéciaux.
Ajouter le paramètre /c
à la commande findstr
s’avère pratique dans les situations suivantes, mais sans s’y limiter :
- Recherche d’une phrase spécifique ou d’un ensemble de mots apparaissant dans un ordre particulier.
- Recherche d’une chaîne contenant des espaces ou des caractères spéciaux.
Pour voir comment le paramètre /c
fonctionne en action, suivez ces étapes :
1. Exécutez la commande findstr
ci-dessous pour rechercher la chaîne littérale (/c
) banane cerise
dans le fichier *notes.txt*
.
Dans la sortie ci-dessous, la commande findstr
ne renvoie que les lignes contenant la chaîne exacte banane cerise
avec un espace entre les deux mots.
N’oubliez pas que le paramètre /c
est sensible à la casse, donc la commande findstr
ne renvoie que la chaîne avec la casse exacte que vous avez spécifiée. Si aucune des chaînes dans le fichier notes.txt ne correspond au motif spécifié, la commande findstr
renvoie une sortie vide.

2. Ensuite, ajoutez la ligne suivante au fichier notes.txt, et enregistrez les modifications.
À ce stade, il devrait y avoir deux lignes dans votre fichier notes.txt avec la chaîne « hello ». Une en minuscules (hello, world.
), et une autre avec un ‘H’ en majuscule (Hello, world.
).
hello, world.
3. Maintenant, exécutez chaque commande ci-dessous pour rechercher la chaîne littérale hello, world
, ou Hello, world
dans le fichier notes.txt
.
Remarquez ci-dessous que, peu importe qu’il y ait deux lignes contenant la chaîne ‘hello, world’ dans le fichier notes.txt, vous n’obtenez qu’une seule ligne de chaîne.
Le paramètre /c
indique à la commande findstr
d’imprimer les lignes contenant la chaîne ‘hello, world’ avec soit des minuscules soit une majuscule ‘H’.

4. Enfin, exécutez la commande findstr
ci-dessous pour rechercher les chaînes contenant le motif hello
dans le fichier notes.txt
tout en ignorant (/i
) la casse des lettres.
Les recherches sensibles à la casse fonctionnent bien si vous connaissez déjà la casse réelle de la chaîne que vous recherchez. Mais si vous souhaitez voir toutes les lignes de chaînes qui correspondent à un motif indépendamment de la casse des lettres, le paramètre /i
fera l’affaire.

Recherche de chaînes spécifiées dans les fichiers et répertoires
Outre la recherche de chaînes spécifiques dans les fichiers, la commande findstr
vous permet de rechercher des chaînes correspondantes dans les fichiers, répertoires et sous-répertoires.
Supposons que vous souhaitiez trouver tous les fichiers dans un répertoire qui contiennent un mot spécifique dans leur contenu. Si tel est le cas, laissez le paramètre /s
faire le travail sale.
Exécutez la commande ci-dessous pour rechercher (/s
) dans le répertoire actuel et ses sous-répertoires (/s
) tous les fichiers (*.*
) qui contiennent la chaîne system
, en ignorant la casse des lettres (-i
)
N’oubliez pas que cette commande ne recherche que les fichiers qui contiennent la chaîne system
en tant que mot entier et non ceux qui font partie de mots plus grands, tels que systématique ou systématiser.
La sortie ci-dessous montre une liste de noms de fichiers, un par ligne, avec le nom de chaque fichier contenant la chaîne ‘system’.

Recherche de chaînes à l’aide du cmdlet Select-String
Jusqu’à présent, vous avez vu que la commande findstr
fonctionne parfaitement pour trouver des chaînes, mais le cmdlet Select-String
ne doit pas être négligé. Ce cmdlet est l’équivalent de grep
sur Windows, vous permettant de rechercher des motifs de texte spécifiques dans des fichiers et des chaînes.
Le cmdlet Select-String
est conçu pour l’efficacité, vous permettant de rechercher rapidement à travers de grandes quantités de texte, et prend en charge les expressions régulières (regex). À son tour, ce cmdlet vous permet de rechercher des motifs encore plus complexes que findstr
Pour voir comment fonctionne la cmdlet Select-String
, suivez ces étapes :
1. Ouvrez d’abord le fichier notes.txt, ajoutez les lignes suivantes et enregistrez les modifications.
L’ajout de ces lignes est une préparation pour démontrer comment la cmdlet Select-String
gère la casse des lettres dans les étapes suivantes.
Apple
APPLE
ApplE
2. Ensuite, exécutez la commande suivante pour rechercher la chaîne apple
dans le fichier notes.txt
.
Ci-dessous, plusieurs lignes contiennent la chaîne « apple » mais avec des cas de lettres différents puisque la cmdlet Select-String
est insensible à la casse. Mais la bonne chose est que vous pouvez facilement repérer et vérifier les chaînes correspondantes car elles sont mises en évidence.

? Peut-être souhaitez-vous utiliser une simple correspondance de chaînes au lieu d’une correspondance regex. Si c’est le cas, ajoutez le paramètre
-SimpleMatch
, comme indiqué ci-dessous, et ne vous souciez jamais de la syntaxe regex et des caractères spéciaux.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. Maintenant, exécutez la commande ci-dessous pour rechercher APPLE
dans le fichier notes.txt
avec la sensibilité à la casse activée (-CaseSensitive
). Le paramètre -CaseSensitive
est utile pour une précision de recherche.
Comme vous pouvez le voir ci-dessous, la seule correspondance trouvée a la casse exacte que vous avez spécifiée (APPLE).

4. Enfin, exécutez la commande ci-dessous en utilisant regex pour rechercher le motif '\?'
(un point d’interrogation) dans tous les fichiers texte (*.txt
) dans le répertoire $PSHOME\en-US
. Un regex vous permet de rechercher des motifs plus complexes.
Si le contenu d’un fichier contient un point d’interrogation, la commande renvoie le chemin complet du fichier à la console, comme illustré ci-dessous.

Utilisation de ripgrep (rg) comme équivalent de grep sous Windows
rg est un utilitaire en ligne de commande open-source conçu pour rechercher rapidement à travers les fichiers en utilisant des motifs regex. Comme d’autres utilitaires en ligne de commande, rg propose de nombreuses options et fonctionnalités pour personnaliser vos recherches.
Mais contrairement à findstr
et à la commande Select-String
, rg n’est pas installé par défaut dans votre système d’exploitation Windows.
Pour utiliser rg comme équivalent de grep sous Windows:
1. Exécutez la commande scoop
ci-dessous pour installer
ripgrep
sur votre système. scoop install ripgrep

2. Ensuite, exécutez la commande rg
suivante pour vérifier la version installée de rg.
Comme indiqué ci-dessous, vous verrez le numéro de version de rg installé. À ce stade, vous pouvez maintenant exécuter les commandes rg
pour rechercher des chaînes.

3. Exécutez la commande rg
ci-dessous pour rechercher la chaîne apple
dans le fichier notes.txt
.
La sortie affiche toutes les lignes dans le fichier notes.txt qui contiennent la chaîne apple, comme illustré ci-dessous.
Remarquez que la sortie est similaire à celle de la commande Select-String
. Mais au lieu de surligner, rg
change la couleur de la chaîne correspondante et du numéro de ligne pour une distinction rapide.

4. Maintenant, exécutez la commande suivante en utilisant regex pour rechercher des chaînes dans le fichier notes.txt
.
Le regex ci-dessous utilise des limites de mots (\b
) et indique à rg
de rechercher des lignes de chaînes qui contiennent un mot commençant par ‘s’ et se terminant par ‘e’ (s\w+e
).

Filtrer les recherches par type de fichier spécifique
Peut-être que vous êtes spécifique sur le répertoire dans lequel se trouve le fichier que vous recherchez, mais pas sur le nom du fichier. Dans de tels cas, rechercher le contenu du fichier tout en filtrant la recherche par type de fichier peut être la meilleure option.
Filtrer la recherche par types de fichiers spécifiques peut être utile lorsque vous souhaitez uniquement rechercher des types de fichiers particuliers. Ou lorsque vous souhaitez exclure certains types de fichiers de la recherche.
Pour filtrer la recherche par types de fichiers spécifiques, l’option --type
fera l’affaire comme suit:
1. Exécutez la commande rg
suivante pour rechercher la chaîne apple
dans tous les fichiers texte (--type txt
) du répertoire C:\\myfiles
.
L’option --type
prend un type de fichier comme argument, indiquant à la commande rg
de ne rechercher que les fichiers correspondant au type de fichier spécifié.
La sortie ci-dessous montre la ligne contenant la chaîne ‘apple’ et le nom de fichier associé (notes.txt).

2. Ensuite, créez un fichier XML appelé notes.xml et remplissez le code ci-dessous. Ce fichier XML est simplement une préparation pour démontrer le fonctionnement des recherches par joker.
3. Maintenant, exécutez la commande ci-dessous pour rechercher la chaîne apple
dans tous les fichiers (*.
). Cette commande ne recherche que les fichiers txt
et xml
comme spécifié (-g
).
Par défaut, rg
est sensible à la casse. Par conséquent, la sortie affiche uniquement la ligne contenant la chaîne exacte « apple » et le fichier associé.

4. Enfin, exécutez la commande suivante, comme vous l’avez fait à l’étape trois, pour rechercher la chaîne apple
dans tous les fichiers (*.
) ayant une extension txt
ou xml
. Mais cette fois, ajoutez l’option -i
, ce qui indique à rg
d’ignorer la casse des lettres.

Conclusion
À travers ce tutoriel, vous avez appris de nombreux équivalents de grep sous Windows pour rechercher des chaînes de manière littérale et en utilisant des expressions régulières. Vous avez exploité la puissance de ces équivalents de grep avec une gamme d’options et de paramètres pour personnaliser la recherche et filtrer des types de fichiers spécifiques.
À ce stade, vous devriez être confiant dans le débogage de problèmes, l’identification d’issues et la recherche à travers de grands ensembles de fichiers texte.
Maintenant, pourquoi ne pas mettre vos nouvelles compétences à l’épreuve en pratiquant avec les expressions régulières et en personnalisant vos recherches ?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/