Le . du shell

Résolu
zulul Messages postés 24 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

j'ai une commande que je n'arrive pas à interpréter :

ls -a|grep "^\..."

> il me retourne la liste des .f et ../

. veut-il dire aussi n'importe quel car ?

quelqu'un pourrait-il m'expliquer comment le shell interprète ce qu'il y a entre "" ?
A voir également:

4 réponses

Utilisateur anonyme
 
oui le point c'est n'importe quel caractère.

dis-nous plutôt la chaîne que tu veux que ton grep renvoie
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Lister toute chaine commençant par un point suivie de n'inmporte quel caractère pour les deux premiers.
^ = la chaine "^\..." doit se trouver en début de ligne
\. = le caractère "\" protège le caractère "." (point) pour l'inclure dans la recherche
.. = n'importe quel caractère des 2 premiers suivant le point
0
zulul
 
ben c'etait juste pour savoir si le . par defaut ne voulait pas dire le repertoire courant. Mais comme c'est un meta car. de grep, vos reponses me convienne...

En fait c'est pour trouver la commande qui va exclure ./ et ../ à tous les coups dans le resultat du ls

C'est pas encore gagné :)

a+
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
En fait c'est pour trouver la commande qui va exclure ./ et ../ à tous les coups dans le resultat du ls
Ben "ls" tout court sans le paramètre "-a" devrait le faire ;-)))
Si tu y tiens absolument :
ls -a | grep "^[^\...]"
;-)
0
jisisv Messages postés 3678 Statut Modérateur 934
 
Plus simple
ls -A
--> listera les fichiers commençant par '.' mais pas '.' ni '..'
0