Quel est le meilleur outil ou la meilleure méthode pour rechercher un mot spécifique dans une base de code?

StackOverflow https://stackoverflow.com/questions/231189

  •  04-07-2019
  •  | 
  •  

Question

Quel outil ou quelle méthode recommandez-vous pour rechercher et remplacer les valeurs dans votre code? Si le code est sous Linux / Unix, trouver et grep est-il la meilleure méthode?

Était-ce utile?

La solution

Consultez ack , conçu pour la recherche dans de grandes bases de code.

Pour le remplacer, examinez les indicateurs -i, -p et -e de Perl. Vous pouvez faire des choses comme:

$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)

pour remplacer toutes les instances de thisword par thatword dans tous les fichiers .html de l'arborescence.

Autres conseils

Je suppose que vous avez l'intention de renommer une variable.

Cela dépend de la nature du corps du code. Pour C #, l'outil de changement de nom de Visual Studio est très bon. Rappelez-vous que pour que cela fonctionne de manière fiable, il est nécessaire que le changement de nom fonctionne de concert avec le compilateur / interprète, de sorte que vous puissiez être sûr de ne modifier que la bonne portée.

Si c’est une recherche / un remplacement très simple, le modeste bloc-notes ferait très bien son travail?

find et grep vont trouver le mot que vous cherchez, mais pour le remplacer, vous devez utiliser sed , awk ou votre filtre d'édition de flux favori.

groovy , python , perl effectuera tous des opérations de recherche / remplacement - utilisez votre favori ou choisissez-en un pour apprendre.

Pour les opérations sur une base de code, j'utiliserai find | sed pour des opérations simples ( cygwin est votre ami) et la recherche / remplacement de l'EDI avec le support regex pour des opérations plus complexes. Eclipse, Idea, Visual Studio et même SQL Server Manglement Studio disposent de puissantes fonctions de recherche / remplacement. La mauvaise nouvelle est qu’ils n’utilisent pas tous la même syntaxe regex.

Jetez un coup d'œil à PowerGrep ... il y a des annonces partout dans SO. Je commence à en vouloir même quand je n'en ai pas vraiment besoin -

PD: Ils ont une démo gratuite de 15 jours. Par conséquent, s'il s'agit d'un petit travail, vous pouvez simplement utiliser la démo.

Ceci est juste un pourboire à la réponse acceptée ci-dessus par Andy. Je ne pourrais pas l'ajouter à un commentaire en raison d'une moins bonne réputation

Utilisez! en tant que séparateur lorsque vous avez du mal à sortir des cordes

exemple: $ perl -i -p -e! \ bthisword \ b! thatword! g '$ (find. -name * .html)

find et grep ne construisent pas d’indécies, elles seront donc toujours plus lentes que les alternatives. Cela dit, ils fonctionnent bien si votre base de code n’est que de quelques dizaines de fichiers.en Fi

Eclipse a une belle fonctionnalité de recherche de fichiers (Ctrl + H). La sémantique de la langue peut également être prise en compte si vous avez les bons plug-ins (Java fonctionne parfaitement, bien sûr). Le seul inconvénient est que cela peut être un peu lent la première fois que vous effectuez une recherche dans un certain ensemble de fichiers.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top