22 votes

Outil de recherche et de remplacement multi-lignes

Je recherche un outil pour remplacer plusieurs lignes dans tout un projet. Par exemple:

#include "../DiscreteIO/Discrete.h"
#include "../PCI/pci.h"
#include "../Arinc429/ARINC429.h"

avec

#include "../PCI/pci.h"
#include "../DiscreteIO/DiscreteHW.h"
#include "../DiscreteIO/Discrete.h"

J'ai essayé deux outils qui fonctionnent pour ce type de recherche et de remplacement. Wildedit et Actual search and replace Les deux semblent être d'excellents outils mais ce sont des sharewares. Est-ce que quelqu'un connaît des outils similaires? Est-ce gratuit ou est-il temps de dépenser de l'argent?

Clarification:

à travers tout un projet dans ce cas signifie plus d'un millier de fichiers c. Les éditeurs de texte ne peuvent le faire que fichier par fichier (Textpad, Programmers Notepad) ou dans tous les fichiers ouverts (nodepad++). Je n'ai pas essayé d'autres éditeurs mais je suppose qu'ils auront des problèmes similaires. Veuillez me corriger si je me trompe.

Des outils comme sed & awk sont une solution mais posent des problèmes car je ne les utilise pas régulièrement et j'ai besoin de passer du temps pour arriver à quelque chose qui fonctionne car je ne suis pas un expert des outils.

La réponse est: Tout cela...

Ultra Edit peut fonctionner mais j'ai déjà un éditeur et le prix est élevé si je vais juste l'utiliser comme outil de recherche et de remplacement.

Sed, AWK et d'autres outils basés sur les expressions régulières peuvent fonctionner mais peuvent être pénibles dans certains cas.

Wild Edit peut fonctionner et n'est pas si cher.

Ma décision finale est de travailler mes compétences en expressions régulières.

12voto

Rich Points 1870

La famille d'IDE JetBrains : IntelliJ, RubyMine, PHPStorm, etc. effectuera une recherche et un remplacement sur plusieurs lignes.

Sélectionnez le texte en question et appuyez sur ctrl-shift-F -- cela ouvrira la boîte de dialogue de remplacement avec le texte sélectionné comme expression de recherche (en utilisant une regex avec les sauts de ligne échappés comme \n)

9voto

Paul Points 18124

Sed fera ce que vous voulez.

Consultez l'entrée de FAQ à ce sujet ici http://sed.sourceforge.net/sedfaq4.html#s4.23.3

Si vous avez besoin de faire correspondre un bloc de texte statique (qui peut apparaître un nombre quelconque de fois dans un fichier), où le contenu du bloc est connu à l'avance, alors ce script est facile à utiliser

Sed est disponible pour Windows. Voir http://gnuwin32.sourceforge.net/packages/sed.htm

4voto

Zsolt Botykai Points 20615
cd $PROJECTDIR && find . -iname '*.*' -exec vim -c 's:^first line of text\nsecond line of text\n3rd line of text:new 1st line\rnew 2nd\rnew 3rd:' -c 'w!' -c 'q' {} \;

HTH

4voto

Kissaki Points 4000

Visual Studio Code a un très bon outil de recherche et remplacement "global". Je viens tout juste de l'utiliser pour effectuer plusieurs changements sur plusieurs lignes dans de nombreux fichiers, y compris certaines recherches Regexp avec capture et remplacement.

  • Ouvrez VS Code
  • Fichier → Ouvrir un dossier, ouvrez le dossier où se trouvent vos fichiers
  • Ouvrez un fichier et sélectionnez le texte que vous souhaitez remplacer
  • CTRL + SHIFT + H pour ouvrir Rechercher & Remplacer
  • Si vous avez sélectionné un texte, il se remplira automatiquement, même sur plusieurs lignes. Sinon, saisissez le texte, utilisez SHIFT + Enter pour insérer des sauts de ligne, et activez éventuellement Regexp.
  • Saisissez le texte de remplacement
  • Appuyez sur Entrée pour lancer la recherche
  • Cliquez sur les éléments de changement pour prévisualiser les modifications côte à côte
  • Utilisez le bouton Remplacer tout (CTRL + ALT + Entrée) pour appliquer et enregistrer les modifications

3voto

Bruno Vincent Points 237

La seule chose qui fonctionne clés en main en un seul coup, c'est dreamweaver....entrer la description de l'image ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X