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 :

AWK: problème de conversion de fichier LDIF


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut AWK: problème de conversion de fichier LDIF
    Bonjour,

    J'ai un petit problème pour convertir un fichier LDIF généré de LDAP:


    Le fichier bb.ldif contient les informations suivantes:

    dn: cn=10,ou=work,o=dom.com
    cn: denis.vezina@dom.com
    sn: vezina
    givenName: denis
    mail: denis.vezina@dom.com
    displayName: denis vezina

    dn: cn=20,ou=work,o=dom.com
    cn: jean.paul@dom.com
    sn: Paul
    givenName: jean
    mail: jean.paul@dom.com
    displayName: jean paul

    dn: cn=30,ou=work,o=dom.com
    cn: isabelle.didi@dom.com
    sn: didi
    givenName: isabelle
    mail: isabelle.didi@dom.com
    displayName: isabelle didi

    dn: cn=40,ou=work,o=dom.com
    cn: alain.papa@dom.com
    sn: papa
    givenName: alain
    mail: alain.papa@dom.com
    displayName: alain papa

    J'utilise un fichier awk nommé book.awk

    function print_user()
    {
    if(cn1 != "")
    {
    printf("%s:%s:%s:%s:%s:%s", cn1,cn2,sn1,givenName1,mail1,displayName1)
    printf("\n")
    }
    }

    BEGIN {
    cn1 = ""
    cn2 = ""
    sn1 = ""
    givenName1 = ""
    mail1 = ""
    displayName1 = ""

    }
    /^dn/ {cn1=$2}
    /^cn/ {cn2=$2}
    /^sn/ {sn1=$2}
    /^givenName/ {givenName1=$2}
    /^mail/ {mail1=$2}
    /^displayName/ {displayName1=$2" " $3}
    /^dn/ {
    print_user()
    cn1= ""
    cn2 = ""
    sn1 = ""
    givenName1 = ""
    mail1 = ""
    displayName1 = ""
    }
    END {
    print_user()
    }


    Quand j'exécute la commande suivante:

    awk -f book.awk bb.ldif >tata.txt

    J'ai le résultat erroné comme suit:

    cn=10,ou=work,o=dom.com:::::
    cn=20,ou=work,o=dom.com::vezina:denis:denis.vezina@dom.com:denis vezina
    cn=30,ou=work,o=dom.com:aul:jean:jean.paul@dom.com:jean paul
    cn=40,ou=work,o=dom.com::didi:isabelle:isabelle.didi@dom.com:isabelle didi

    Certainement mon fichier awk est erroné. Peut-il quelqu'un m'aider à régler ce problème? ça sera apprécié.
    Merci beacoup,


    Haydar

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Solution
    Voici la solution qui m'a été fourni par un autre site:

    Le fichier awk doit être comme suit:

    function print_user()
    {
    if(cn!="")
    {
    printf("%s:%s:%s:%s:%s:%s\n", dn,cn,sn,givenName,mail,displayName)
    }
    }

    BEGIN {
    dn = ""
    cn = ""
    sn = ""
    givenName = ""
    mail = ""
    displayName = ""
    }
    /^dn/ {ndn=$2}
    /^cn/ {cn=$2}
    /^sn/ {sn=$2}
    /^givenName/ {givenName=$2}
    /^mail/ {mail=$2}
    /^displayName/ {displayName=$2" "$3}
    /^dn/ {
    print_user()
    dn= ndn
    cn = ""
    sn = ""
    givenName = ""
    mail = ""
    displayName = ""
    }
    END {
    print_user()
    }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Voici une autre solution au problème.

    awk -F': |\n' '{print $2,$4,$6,$8,$10}' RS= OFS=: file

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

Discussions similaires

  1. Problème avec LDAP Browser après import fichier ldif
    Par lou87 dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 10/05/2012, 14h00
  2. Réponses: 7
    Dernier message: 12/01/2011, 03h58
  3. probléme de conversion d'un JTable en un fichier Excel
    Par sunriseprogramer dans le forum Composants
    Réponses: 5
    Dernier message: 22/06/2009, 23h42
  4. Réponses: 0
    Dernier message: 12/12/2008, 14h16
  5. Réponses: 2
    Dernier message: 02/04/2007, 18h49

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