J'ai un fichier avec plusieurs instances de Text_1
et Text1
et je dois remplacer ces deux chaînes par Text_A
et TextB
respectivement.
Actuellement, je fais deux fonctions Rechercher et remplacer sur chaque fichier, l'une qui le trouve Text_1
et le remplace Text_A
et l'autre qui le trouve Text1
et le remplace TextB
.
Existe-t-il un moyen de faire tout cela à la fois au lieu d'avoir à exécuter "Rechercher et remplacer" deux fois?
J'utilise Dreamweaver CS3, mais j'ai également Notepad ++, Notepad régulier, OO Writer, MS Word si cela sera plus facile. Idéalement, je pourrais le faire dans Dreamweaver ou Notepad ++ mais je suis prêt à télécharger quelque chose d'autre pour faire le travail. Je préférerais ne pas avoir à faire de trucs en ligne de commande ou créer un fichier batch (bien que j'en sois conscient, je ne le comprends pas vraiment).
Dans le cas où la description ci-dessus n'est pas claire, laissez-moi l'expliquer de cette façon ...
Je veux exécuter Find & Replace 1 fois dans 1 document et je veux qu'il fasse TOUTES les opérations suivantes au cours de cette instance Find & Replace:
- Rechercher
Text_1
et remplacer parText_A
- Rechercher
Text1
et remplacer parTextB
Je n'essaye pas de faire une recherche et un remplacement sur plusieurs documents.
Réponses:
Jetez un œil à Sed . Vous pouvez facilement atteindre votre objectif en une seule ligne de commande
sed -e "s/Text_1/TextA/" -e "s/Text1/TextB/" <your_file.txt>your_file_new.txt
la source
Depuis Notepad ++ 6.0, il est en fait possible sans scripts en utilisant la technique suivante:
Rechercher: (Texte_1) | (Texte2)
Remplacer: (? 1Text_A) (? 2TextB)
La syntaxe générale est:
? 1 fait référence à la première phrase capturée et ainsi de suite.
Je l'ai obtenu de la réponse suivante: /programming//a/16104946/287101
la source
En utilisant Notepad ++, vous pouvez soit
Ouvrez tous les fichiers contenant les mots que vous souhaitez remplacer et utilisez Rechercher / Remplacer dans tous les fichiers ouverts
Utiliser Rechercher / Remplacer dans les fichiers
Enregistrer une macro exécutant les options de recherche et de remplacement et la lire
la source
Il vaut mieux exécuter Find & Replace deux fois, car vous avez deux remplacements différents. Cependant, il devrait y avoir très peu de compromis dans le temps de traitement. Considérer ce qui suit:
Exécution de Find & Replace une fois, recherche terme par terme:
À des fins de fonctionnement, nous supposerons qu'il est linéaire et dirons que cela fonctionne en temps O (n).
Vous voulez trouver deux termes différents. L'exécution de Find & Replace deux fois ressemble à:
ce qui prendrait O (2x1n), soit deux fois plus longtemps que la recherche d'un terme.
La recherche de deux termes avec deux remplacements ressemblerait théoriquement à:
L'obtention des termes ne prend pas beaucoup de puissance de traitement, donc vous recherchez essentiellement deux ensembles de recherches pour chaque terme, donnant un temps de O (1x2n), s'exécutant une fois mais recherchant deux termes.
Bien que vous économisiez du temps en ne chargeant pas chaque terme deux fois, vous passeriez plus de temps à rechercher deux fois chaque terme, donc il y a peu de compromis, et puisque cette fonctionnalité serait utilisée moins souvent que la recherche d'un terme avec un remplacement, les développeurs d'applications supposent simplement de ne pas écrire cette fonctionnalité.
la source
La prise en charge des expressions régulières dans Notepad ++ est sévèrement limitée. Sans l'opérateur d'alternance, il n'y a aucun espoir de se rapprocher de ce que vous voulez faire. Vous aurez besoin d'utiliser
sed
ou d'un éditeur qui a un meilleur support regex.La source
Voir également
GNUWin32
sed
pour Windowsla source
J'utilise TextCrawler pour la recherche et le remplacement par lots. (J'utilise Notepad ++ pour la recherche / remplacement unique sur plusieurs fichiers car il est plus rapide que Textcrawler.) TextCrawler prend en charge les expressions régulières ainsi que la recherche / recherche normale. Les fichiers batch peuvent être enregistrés et rechargés pour une utilisation future.
la source
Cela peut également être fait en utilisant le plugin ActiveX (pour Notepad ++) et en exécutant un script personnalisé:
la source
Cela fonctionne pour tous les numéros (pour supprimer tous les numéros du texte / article)
Appuyez sur Ctrl + H pour ouvrir la boîte de dialogue Rechercher et remplacer.
Dans la zone "Rechercher quoi", tapez ^ #
Laissez la case "Remplacer par" vide.
Remplace tout.
la source