Quelle commande, le cas échéant, peut être une bonne alternative à la recherche de texte sublime dans le dossier?

0

Existe-t-il un moyen de rechercher une chaîne ou une phrase de manière récursive dans tous les fichiers d'un dossier à partir de la ligne de commande, de sorte que le résultat obtenu soit similaire au comportement de recherche de Sublime Text 2? Comme, avec le chemin du nom du fichier dans lequel la chaîne a été trouvée et une partie du bloc de texte qui la contient?

utilisateur234989
la source
4
Pouvez-vous télécharger une image du "comportement de recherche de Sublime Text 2"?
Matan129

Réponses:

2

Je suppose que vous utilisez un système * nix. Si vous voulez juste les fichiers du dossier actuel, faites

$ grep -C 3 foo *
bar.txt-This is line one
bar.txt:This is line two, which contains foo
bar.txt-This is line 3

Si vous souhaitez également recintrer dans des sous-dossiers, utilisez

grep -rC 3 foo

Détails:

   grep,  egrep,  fgrep,  rgrep - print lines matching a
   pattern


  -C NUM, -NUM, --context=NUM
          Print  NUM  lines of output context.  Places a
          line containing a group separator (--) between
          contiguous  groups of matches.  With the -o or
          --only-matching option, this has no effect and
          a warning is given.
   -R, -r, --recursive
          Read   all   files   under   each   directory,
          recursively;  this  is  equivalent  to  the -d
          recurse option.
terdon
la source
Si vous avez un grep récent (?) GNU, vous pouvez également utiliser cette --coloroption. Le nom du fichier est ensuite imprimé en magenta, le texte correspondant en rouge.
mpy