IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Compréhension d'une commande


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut Compréhension d'une commande
    Bonsoir tout le monde

    S'il vous plait quelqu'un pourrait m'expliquer ça veut dire quoi cette commende:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat passwd | grep "^[^0-9][^0-9]*:"
    C'est urgent s'il vous plait
    Merci beaucoup d'avance

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut Si je me souviens bien de mes cours de S21...
    Grace a cette commande, tu cherche dans le fichier passwd les lignes commencant par un chiffre compris entre 0 et 9 suivi d'un autre chiffre compris entre 0 et 9, suivi de n'importe quel caractère et se terminant (fin de ligne) par un :

    Je crois que c'est ça; corriger moi si je me trompe

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    merci beaucoup je comprends maintenant, mais il faut dire que j'ai encore des problèmes à comprendre le code linux

    par exemple celui là


  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut toujours en me souvenant de S21...
    ls permet de lister le contenu de ton repertoire courant
    le tube permet de prendre la sortie de la commande ls et de l'envoyer dans le grep qui permet de filtrer...

    ici, normalement, il te cherchera tout les fichiers ou dossiers de ton repertoire courant commencant par deux M ou m qui se suivent

    les \ permettent de banaliser les accolades
    si tu veux pas les banalisées, tu met grep -e ou bien egrep

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    celà veut dire quoi "banaliser les acolades"?
    cette prtie précisémment

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    J'arriverai pas a t'expliquer sa :$, je sais plus pourquoi exactement...

    Dsl, de toute façon je vais aller me coucher la, il se fait tard

    Bonne nuit à toi et puis si ta une question sur les commandes, pense à regarder les pages man la commande en question car généralement, c bien expliqué ce que la commande fais exactement...

    Pour voir les pages man, il te suffit de taper:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    man TaCommande
    man grep (par exemple)
    Je te conseil aussi de lire la FAQ vu que tu as l'air de débuté
    Et puis le meilleur moyen d'apprendre, c'est la pratique...

    Allez bonne nuit et @+

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par bucheron67
    Grace a cette commande, tu cherche dans le fichier passwd les lignes commencant par un chiffre compris entre 0 et 9 suivi d'un autre chiffre compris entre 0 et 9, suivi de n'importe quel caractère et se terminant (fin de ligne) par un :

    Je crois que c'est ça; corriger moi si je me trompe
    Et bien puisque tu le demande :
    Cette commande recherche plus précisément une ligne dans le fichier passwd qui commence ('^' représente un début de ligne) par un caractère qui n'est pas un chiffre (entouré par [] c'est une classe de caractère (autrement dit un ensemble de caractère peut être reconnu à cet endroit), dans une classe de caractère, écrire c1-c2 c'est prendre tous les caractères entre c1 et c2, ici donc 0-9 désigne tous les chiffres de 0 à 9, mais le premier caractère de la classe de caractère est '^', ceci indique que la classe de caractère est en fait le complémentaire de la classe de caractère qui suit, donc '[^0-9]' désigne bien : tous les caractères sauf les chiffres), puis une suite (le * signifie 0 ou plus fois l'élément qui le précède, donc ici 0 ou plus '[^0-9]') de caractères qui ne sont pas des chiffres, se finissant par un ':' (qui n'est pas forcément en fin de ligne).

    Autrement dit, le but de cette commande est de récupérer tous les utilisateurs qui n'ont pas de chiffres dans leur login.
    (perso j'aurais plutôt utilisé '[^0-9#]' pour éviter de reconnaître un commentaire par hasard mais bon...)

    --
    Jedaï

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Spacy_green
    celà veut dire quoi "banaliser les acolades"?
    cette prtie précisémment
    Les accolades n'ont pas de sens particulier normalement, '{' dans une regex de grep (sans l'option -e) veut simplement dire "il doit y avoir le caractère '{' ici". Mais si tu les échappes (tu les précèdes d'un '\' antislash), elles acquièrent un sens : '\{n,m\}' veut dire "l'élément précédent" répété de n à m fois. Ce que fait l'option -e ou l'emploi de egrep plutôt que de grep c'est accorder ce sens aux accolades par défaut, on peut alors écrire directement '{n,m}', mais on est obligé d'écrire '\{' pour reconnaître une vraie accolade maintenant ! (personellement je préfère egrep parce que je trouve les regexs qu'il forme plus lisible, en effet il y a rarement des accolades dans les textes à reconnaître, alors qu'on a souvent besoin de la fonctionnalité '{n,m}', de plus egrep affecte de la même manière un certain nombre d'autres caractères spéciaux)

    --
    Jedaï

  9. #9
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    merci Jedai , comme quoi je me souviens plus de S21 , j'ai complètement oublié les ^ dans les crochets, honte à moi

    Mouarf, j'aime pas les regexp, je crois que vous avez compris pourquoi maintenant :p, mais bon à l'avenir je ne posterais que si je suis sur

Discussions similaires

  1. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 12h04
  2. [LG]plantage sur une commande basique !
    Par Jeff on the web dans le forum Langage
    Réponses: 5
    Dernier message: 13/01/2004, 20h07
  3. Passage d'une commande à un programme
    Par nicolas.pissard dans le forum C++Builder
    Réponses: 5
    Dernier message: 04/11/2003, 14h37
  4. Réponses: 2
    Dernier message: 24/06/2003, 21h31
  5. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo