Quel est le moyen le plus rapide (précis) de rechercher une chaîne de texte dans des fichiers sur une machine Windows?
9
Comme le titre l'indique, quel est le moyen le plus rapide (précis) de trouver quelles lignes de quels fichiers correspondent à une chaîne particulière.
Plus précisément, je suis à la recherche .cppet les .hfichiers.
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.
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
L'agent Ransack fonctionne comme un charme. Téléchargez-le ici .
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:
Ê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. :-)
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!
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.
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
Réponses:
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é :)
la source
L'agent Ransack fonctionne comme un charme. Téléchargez-le ici .
la source
Findstr
travaille toujours pour moi. Il peut utiliser des caractères génériques text * ou regex pour la chaîne de recherche.Findstr /?
pour plusla source
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/
la source
Voici une solution Powershell:
gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString
Le
-r
engci
est pour récursion, et bien sûr est facultative, comme le sont les deux filtres d'extension de fichier. Un paramètre utile deSelect-String
est-list
qui 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
la source
-filter "*.cpp","*.h"
accepter plusieurs extensions? Cela devrait plutôt lire-include ("*.cpp","*.hpp")
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. :-)
la source
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!
la source
Une autre
grep
implémentation pour Windows par les célèbres développeurs de tortue svn:grepWin
la source
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.
la source
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.
la source