web-dev-qa-db-fra.com

Recherchez plusieurs chaînes dans plusieurs fichiers avec Sublime 3

Je sais comment rechercher un chaîne unique dans plusieurs fichiers à la fois avec Sublime 3 (expliqué ici ).

Ce que je dois faire est de rechercher plusieurs chaînes dans plusieurs fichiers. J'ai essayé d'aller à Find in files et de régler:

Field:  string1 \& string2
Where: /path_to_folder_containing_the_files_I_want_to_ search/

(où string1 et string2 sont les chaînes que je veux rechercher) mais cela ne semble pas fonctionner.

Cela peut-il être fait du tout?

22
Gabriel

Je viens de trouver cette vieille question et je pensais ajouter ma solution, qui pourrait être utile à quelqu'un à l'avenir.

Sublime prend en charge la recherche dans tous les dossiers ouverts et peut utiliser regex. Ainsi, en utilisant les deux, vous pouvez ouvrir ou ajouter tous les dossiers que vous souhaitez rechercher dans le projet et utiliser regex pour rechercher plusieurs mots-clés. Dans votre cas, ce serait le suivant (assurez-vous de cocher la case regex icône .*):

Find: (string1|string2)
Where: <open folders>
31
Sherzod

J'utilise ceci:

cochée expression régulière

Find: (string1.*string2)

Where: *.php
2
koshin

Non, vous ne pouvez rechercher qu'une chose à la fois dans Sublime, comme la plupart des autres éditeurs à ma connaissance. La seule solution possible consiste à utiliser la recherche par expression rationnelle (cliquez sur le bouton situé à l'extrême gauche du champ lorsque vous entrez votre terme de recherche) et à créer une bonne expression rationnelle qui correspond à tout ce que vous recherchez. Ou, vous pouvez simplement rechercher chaque match un par un.

En guise d'alternative, envisagez de mettre à niveau des utilitaires de traitement de texte standard en ligne de commande tels que grep, sed, awk, etc. Combinant leur puissance avec les capacités de conduite de commandes de Shell, vous pouvez exécuter des commandes telles que:

grep -e "foo" *.txt | grep -e "bar"

qui recherchera le modèle foo dans tous les fichiers .txt du répertoire en cours, puis recherchera à nouveau le modèle bar dans toutes les lignes résultantes, de sorte que la sortie finale contiendra à la fois foo et bar, dans n'importe quel ordre.

0
MattDMo

J'ai essayé ceci sur Sublime Text2, je devrais donc aussi travailler sur Sublime Text3.

Champ: chaîne1 chaîne2 chaîne3 chaîne4

Remarque: décochez la case '. *' Qui signifie expression régulière et cochez la case "" qui signifie rechercher le mot entier.

Ceci recherchera le motif "chaîne1 chaîne2 chaîne3 chaîne4" dans tous les fichiers du dossier mentionné.

0
Anamitra