Le . du shell

Résolu
zulul Messages postés 22 Date d'inscription   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 "" ?

4 réponses

  1. 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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. 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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
  4. jisisv Messages postés 3678 Statut Modérateur 936
     
    Plus simple
    ls -A
    --> listera les fichiers commençant par '.' mais pas '.' ni '..'
    0