Comment rechercher des fichiers contenant des mots spécifiques?

37

Comment rechercher des fichiers contenant des mots spécifiques?

UAdapter
la source
5
Voulez-vous dire en fait que le fichier de recherche NOMS contient un mot spécifique? C'est-à-dire que tous les fichiers qui ont le terme FUN dans leurs noms, FUN_time.txt FUN_stuff.txt ou rechercher dans un fichier des mots spécifiques?
dr_willis

Réponses:

51

Avec la ligne de commande, vous avez plusieurs options. Les 3 que j'utilise le plus sont ...

  1. locate {part_of_word}

    Cela suppose que votre base de données de localisation est à jour, mais vous pouvez la mettre à jour manuellement avec: sudo updatedb

  2. grepcomme expliqué par dr_willis. Une remarque: -Raprès grepaussi cherché dans les annuaires. Exemple:

    cd\
    grep -R {something_to_look_for} {where_to_look_in}
    
  3. find . -name '*{part_of_word}*' -print

Où se .trouve le répertoire où vous vous trouvez actuellement et *est un caractère générique.

Oh, et vous pouvez aussi les combiner. Exemple: locate {something}|grep {some_part_of_something}|more

Si je me souviens bien: locateest la plus rapide (en supposant que votre base de données est à jour) et findla plus lente. Et grepc’est le plus complexe, mais aussi le plus polyvalent, puisque vous pouvez utiliser des regex.

Rinzwind
la source
25

grep -R "quoi" "où"

Exemple:

grep -R hello /home

DemonWareXT
la source
4

La commande grep est couramment utilisée pour cela.

grep PATTERN nom

et grep peut effectuer des recherches très complexes.

willis@Cow:~$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c
dr_willis
la source
3
ou vous pouvez faire "mot rgrep." chercher récursivement tous les fichiers et sous-répertoires à la recherche de "word"
Jeremy Bicha
4

Vous pouvez utiliser greppour lister les fichiers contenant worddans le donné directory:

grep -Ril word directory

Ici:
* -Rrecherche récursivement les fichiers dans les sous-répertoires.
* -iIgnorer la casse du texte
* -lAfficher les noms de fichier au lieu des portions de contenu de fichier. (note: -Lindique les noms de fichiers qui ne contiennent pas le mot).

utiliser man greppour obtenir toutes les options

Chandan
la source
3
Juste pour que vous sachiez: -ieffectue une recherche insensible à la casse.
David Foerster