Quel est le moyen le plus rapide (précis) de rechercher une chaîne de texte dans des fichiers sur une machine Windows?


Réponses:


11

Notepad ++ a l'option 'find in files', qui se trouve dans le menu 'Search'. Cela vous permettra de rechercher plusieurs fichiers dans un dossier (vous pouvez spécifier le dossier) et vous montrera également les numéros de ligne de chaque fichier . Vous pouvez basculer si les sous-dossiers et les dossiers cachés sont inclus dans la recherche, et cela vous permettra également de rechercher avec \ t \ n etc. et de rechercher avec des expressions régulières si vous en avez besoin.

Notepad ++ est un éditeur de programmeurs Windows (pas un IDE) et est également Open Source.

(Je me rends compte que vous avez probablement entendu parler de notepad ++, mais je le mentionne juste ici comme une option au cas où vous ne seriez pas au courant de cette fonctionnalité particulière , et pour d'autres qui tomberont sur ce fil plus tard.

À votre santé :)


Oui, je dois admettre, j'ai déjà utilisé Notepad ++ pour cela.
Jon Cage

1
@JonCage il y a quelqu'un dans ce fil sevenforums.com/software/… qui parle aussi comme vous en disant "j'admets" quand il s'agit de choses utiles. C'est une façon extrêmement étrange de parler. Vous voudrez peut-être rencontrer cette personne. Peut-être votre jumeau.
barlop

Notepad ++ est super. D'autres éditeurs de programmeurs comme SciTE ont également des fonctionnalités similaires.
TimothyAWiseman


5

Findstrtravaille toujours pour moi. Il peut utiliser des caractères génériques text * ou regex pour la chaîne de recherche. Findstr /?pour plus


5

Sur les systèmes Unix, les gens utiliseraient très probablement grep pour cela, alors pourquoi ne pas utiliser Windows Grep?

http://www.wingrep.com/


Windows Grep peut parfois devenir instable, mais c'est le programme de recherche le plus rapide que j'aie jamais utilisé.
yakatz

@yakatz Merci d'avoir mentionné une éventuelle instabilité avec Windows Grep, je vais chercher un outil grep / replace différent!
pacoverflow

wingrep n'est plus disponible, mais grepwin est toujours disponible et fonctionne très bien.
techturtle

3

Voici une solution Powershell:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

Le -ren gciest pour récursion, et bien sûr est facultative, comme le sont les deux filtres d'extension de fichier. Un paramètre utile de Select-Stringest -listqui ne rapportera que la première instance d'une correspondance dans un fichier, au lieu de vous en donner chaque occurrence par fichier.

Vous souhaitez peut-être ouvrir instantanément chaque fichier où une correspondance est trouvée? Eh bien, la petite modification suivante à ce qui précède est très utile, selon ce que vous avez comme association de fichiers par défaut:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii


J'étais sur le point de poster la même chose :)
Caleb Jares

Êtes-vous sûr d' -filter "*.cpp","*.h"accepter plusieurs extensions? Cela devrait plutôt lire-include ("*.cpp","*.hpp")
mloskot

2

tout en faisant une localisation de certains logiciels, j'utilise DocFetcher pour rechercher les mêmes chaînes dans les fichiers précédemment traduits. Il est gratuit et open-source, mais doit d'abord créer un index. Essayez-le. :-)


1

Utilisez les "chaînes" fournies par M $ . Ils ont acheté de très bons utilitaires à Sysinternals il y a quelques années. Ne nécessite pas d'installation, déposez-le simplement sur la boîte et exécutez-le pour la syntaxe. Facile à utiliser et GRAND!


1

Une autre grepimplémentation pour Windows par les célèbres développeurs de tortue svn:

grepWin


0

Si vous êtes satisfait de la ligne de commande / avec Linux. Puis-je suggérer de chercher à installer une version de grep pour Windows?

cygwin est un moyen assez pratique pour y arriver et vous donnera un environnement Linux complet, avec shell bash et un terminal rxvt. Sinon, si vous voulez juste les outils, il y a gnuwin32 mais vous serez coincé avec l'invite Windows cmd.exe.

Microsoft a en fait sa propre version des outils Unix en téléchargement, mais ils semblaient assez lents par rapport aux ports GNU lorsque je les ai essayés. Ils vont également les supprimer avec Windows 8.


0

C'est ainsi que je recherche des chaînes de texte dans le registre Windows ou des fichiers sur ma machine Windows XP. Supposons que je veuille trouver la chaîne "Enterprise" dans un fichier texte sur le lecteur c:, puis écrivez la sortie dans un fichier appelé search_result.txt dans c: \ windows \ temp

Ouvrez une invite de commande puis tapez:

findstr "Entreprise" c: *. txt> c: \ windows \ temp \ search_result.txt

La chaîne que vous recherchez est sensible à la casse. "Entreprise" et "entreprise" ne trouveront pas la même chaîne.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.