![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Shell Vos questions sur l'utilisation des commandes shell |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: juillet 2008
Messages: 3
|
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 (permalink) |
|
Invité de passage
![]() Date d'inscription: juillet 2008
Messages: 3
|
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() } |
|
|
|
![]() |
![]() |
||
AWK: problème de conversion de fichier LDIF
|
||
| Outils de la discussion | |
|
|