Commande grep

sapne Messages postés 1 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
bonsoir.J'ai dans mon répertoire d'accueil plusieurs fichiers dont l'ectension est .c, lorsque je tape la commade ls | grep *.c , elle ne m'affiche qu'un seul fichier parmi ceux qui ont cete extension.Pour d'autres extensions y a meme pas un seul résultat.Quel est le probleme svp?
A voir également:

2 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

ls | grep *.c

grep utilise des expressions régulières. Ce que tu essaies c'est la variante caractères générique comme on utilise sous win quand on cherche des fichiers.

Si je traduit ta commande c'est : liste moi les fichiers de ce répertoire et ensuite choisi que les fichiers qui ont le motif le caractère * ensuite n'importe quel caractère (.) mais un seul fois et avec un c après.

En fait tu vois que grep ne sais pas lire grand chose.
Il pourrait trouver des choses comme *bc ou *hcd ou a*hcf et même mon_f*ichier.c

Pour trouver tes fichiers qui ont l'extension .c la commande find est suffisante

find /rep -name '*.c'

en ce cas la globalisation type windows fonctionne


pour grep ça sera

ls | grep '.*\.c'

Qui veut dire : liste les fichiers ensuite affiche seulement les fichiers qui on le motif ( n'importe quel caractère zéro fois, une fois ou plus suit d'un caractère point (.) et qui contient un c après le point.

Mais dans ce cas la commande grep va trouver aussi a.cc donc on va la modifier

ls | grep '.*\.c$'
Dans ce cas le motif demande une chaine qui se fini avec le caractère poin suit dans c



Utilise plutôt find en ce cas
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Un simple :

ls *.c

devrait suffire dans ce cas précis. Pour une liste en colonne, rajoute "-1" à "ls" :

ls -1 *.c
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

bien vu.

On doit choisir la méthode la plus simple.

Bonne journée.


lami20j

P.S. Mon intention c'était de le faire un peu comprendre la différance entre une simple globalisation et une regex
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité
 
Salut,

Mon intention c'était de le faire un peu comprendre la différance entre une simple globalisation et une regex
J'avais bien compris (et c'est tout en ton "honneur"), mais les "regex" au début c'est "prise de tête en tout genre".

Bonne journée à toi aussi et aux z'autres bien entendu ;-))
0