195 votes

Comment puis-je "greper" un nom de fichier au lieu du contenu d'un fichier ?

grep est utilisé pour rechercher dans un fichier si une ligne correspond à une expression régulière donnée. Cependant, je suis confronté à la situation suivante : je souhaite écrire une expression régulière qui correspondra au nom de fichier lui-même (et non au contenu du fichier). Je l'exécuterai à partir du répertoire racine du système, afin de trouver tous les fichiers qui correspondent à l'expression régulière.

Par exemple, si je veux trouver tous les Visual Basic qui commencent par un "f" et se terminent par .frm, j'utiliserai l'expression régulière -

   "f[[:alnum:]]*\.frm"

Est-ce que grep peut faire cela ? Si ce n'est pas le cas, existe-t-il un utilitaire qui me permettrait de le faire ?

12voto

Sireesh Points 802
find -iname "file_name"

Syntax:
find -type type_descriptor file_name_here

type_descripteur types :

f : fichier normal

d : répertoire

l : lien symbolique

c : dispositifs de caractères

b : dispositifs de blocage

6voto

mountainLion Points 182
find . | grep KeywordToSearch

Ici . désigne le répertoire courant, qui est la valeur de la fonction chemin pour le paramètre trouver commande. Elle est transmise à grep pour la recherche du mot-clé, qui doit renvoyer tous les résultats correspondants.

Remarque : il faut tenir compte des majuscules et des minuscules. Ainsi, par exemple fileName y FileName ne sont pas les mêmes.

4voto

caylus Points 395

Vous pouvez aussi le faire :

tree | grep filename

Cette commande envoie la sortie de la commande tree à grep pour une recherche. Cependant, cela ne vous dira que si le fichier existe.

-1voto

DimiDak Points 515

Également pour les fichiers multiples.

tree /path/to/directory/ | grep -i "file1 \| file2 \| file3"

-2voto

R M Points 407

Non, grep fonctionne parfaitement pour cela :

 grep -rl "filename" [starting point]

 grep -rL "not in filename"

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