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

Unix Discussion :

[awk] Problème de regexp


Sujet :

Unix

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut [awk] Problème de regexp
    Bonjour,
    J'essaie de convertir un fichier ldif en csv avec un script awk, mais je bloque sur une erreur de syntaxe.

    Voilà le code de mon script awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
            function add_object() {
                if(typeObject="person")
                    printf("%s:%s:%s\n", lName, lCity, lMail) > "data.csv"
            }
            BEGIN {
                typeObject = ""
                lName = ""
                lCity = ""
                lMail = ""
            }
     
            {
                /^dn:/ { typeObject = $2 }
                split(typeObject,tab,",")
                typeObject=tab[2]
                sub("/ou=/","",typeObject)
     
                print "DEBUG typeObject=" typeObject
     
                /^name:/ { lName = $2 }
                /^city:/ { lCity = $2 }
                /^mail:/ { lMail = $2 }
     
                add_object()
     
                typeObjet = ""
                lName = ""
                lCity = ""
                lMail = ""
            }
     
            END {
            }
    - Un exemple de données de mon fichier ldif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    dn: id=1515000013,ou=person,o=myldapdirectory
    name: p1
    city: Here
    mail: test@mail.com
     
    dn: id=151506543,ou=other,o=myldapdirectory
    datavalue: AAAjjjjjj
     
    dn: id=1515000013,ou=other4,o=myldapdirectory
    code: 54515155
     
    dn: id=1515054451500013,ou=person,o=myldapdirectory
    name: person2
    city: Here
    mail: mymail@me.com
    Lorsque j'exécute le script, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     syntax error The source line is 14.
     The error context is
                            {   /^dn:/ >>>  { <<<  typeObject = $2 }
     awk: The statement cannot be correctly parsed.
     The source line is 14.
     syntax error The source line is 20.
    Je pense que ca vient de ma regexp, mais j'ai consulté le manuel, et l'exemple donné est conforme a ce que j'ai écrit, donc je ne comprends pas trop.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    /^dn:/ doit être en dehors d'un bloc "{ ... }" puisque c'est une condition d'exécution d'un bloc.

    Idem pour name, city et mail.
    ɹǝsn *sıɹɐlos*

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Ok, c'était effectivement la source de l'erreur.

    Merci beaucoup

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

Discussions similaires

  1. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  2. Un petit problème de regExp
    Par guidav dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 17h36
  3. Probléme de regexp
    Par moook dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2007, 11h17
  4. Problème de regexp
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2006, 21h28
  5. Gros problème avec regexp
    Par dmbsys dans le forum ASP
    Réponses: 6
    Dernier message: 29/04/2006, 16h23

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