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

Shell et commandes GNU Discussion :

regexp shell pour trouver certains types de if


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut regexp shell pour trouver certains types de if
    Bonjour,

    je cherche à écrire un script shell qui m'indiquera si certains types de if sont dans une liste de fichiers.

    Je cherche des patterns de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if[des espaces]([des "trucs"]== 0)
    A la place de == 0, je voudrais aussi chercher == 1, != 0, !=1

    Avec un grep j'arrive pour l'instant à faire le début (pas compliqué)

    Pour tester sur la fin de la ligne, j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep "if[ ]*([.]*[== 0)]$" *
    Mais apparemment c'est pas bon (la commande ne renvoie rien alors qu'elle devrait trouver des cas).

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep 'if \+(.\+[=!]= [01])'
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep 'if \*(.\+[=!]= [01])' dummy.c

    J'ai essayé avec ça, j'ai mis un * après l'espace au lieu du +, car j'ai 0 ou 1 ou plusieurs espaces, mais je n'ai rien en sortie :s

    Citation Envoyé par fichier dummy.c
    if (sgkjgsdfglhkù$*! == 0)

  4. #4
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Et comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Pe 'if\s*\([^!=]+[!=]=\s*[01]\s*\)'

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    il ne faut pas protéger l'astérisque.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    illegal option -- P
    illegal option -- e
    Je crois que j'ai une version particulière de ksh.
    L'option -e est pourtant bien dans le man. J'ai essayé avec -E (dans le man aussi), illegal option aussi.

    J'ai essayé également sans protéger l'astérisque -toujours avec mon fichier dummy.c en deuxième paramètre de grep- sans succès.

    En essayant d'autres choses (-E au lieu de -e), j'ai le message d'erreur suivant :
    Usage: grep -hblcnsviw pattern file ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Regexp pour déterminer le type de navigateur
    Par jrmy7 dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2011, 11h19
  2. Réponses: 15
    Dernier message: 30/11/2007, 15h36
  3. Regexp shell pour sed
    Par GLDavid dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/11/2006, 16h21
  4. [Regexp] pattern pour trouver des fichiers par exclusion d'extension
    Par mnementh64 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 07/09/2006, 10h34
  5. Trouver tous les objets d'un certain type dans un document?
    Par kobe dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 03/11/2005, 17h07

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