Commande grep
sapne
Messages postés
1
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
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:
- Commande grep
- Invite de commande - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
- Commande scannow - Guide
2 réponses
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
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
Salut,
Un simple :
ls *.c
devrait suffire dans ce cas précis. Pour une liste en colonne, rajoute "-1" à "ls" :
ls -1 *.c
Un simple :
ls *.c
devrait suffire dans ce cas précis. Pour une liste en colonne, rajoute "-1" à "ls" :
ls -1 *.c