[#!/fr] Duplication et substitution avec awk

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Laurent PERTOIS
Date:  
À: La liste francophone des scripts shell
Sujet: [#!/fr] Duplication et substitution avec awk
Bonjour,

J'ai un truc sur lequel je sèche.

Un script perl traite un ldif et m'en fait un fichier csv (enfin, presque, disons que je m'en sers de base pour faire un fichier importable avec le workgroup manager de Mac OS X Server pour ceux qui connaissent). Tout va bien sauf que l'uid des comptes qu'on me donne contient un point et ça, Mac OS X n'en veut pas comme premier uid, c'est comme ça, je ne peux pas faire autrement.

D'abord, voici le script perl que j'ai trouvé :

<http://www.painfullscratch.nl/code/ldif2csv.pl>

Je l'ai juste un peu modifié pour que le séparateur soit un ":" et pas ",".

Ensuite, voici un exemple de ldif que je reçois :

dn: uid=ab.lpertoisvo,cn=users,dc=macminitmp,dc=example,dc=org
sn: PERTOIS
uid: ab.lpertoisvo
givenName: Laurent
description: employee
mail: lpertois@???

Une fois passé dans la moulinette du script, j'obtiens ceci :

$ ./ldif2csv.pl podcast-cict.ldif | awk -F ":" '{ print $2":"$3":"$4":"$5":"$6":"$3" " $5}'
employee:Laurent:lpertoisvo@???:PERTOIS:ab.lpertoisvo:Laurent PERTOIS

Or, je sais, je suis chiant, il me faudrait :

employee:Laurent:lpertoisvo@???:PERTOIS:ablpertoisvo,ab.lpertoisvo:Laurent PERTOIS

Remarquez bien la différence, le 5ème champs contient maintenant "ablpertoisvo,ab.lpertoisvo" au lieu de "ab.lpertoisvo", on ajoute le même uid en supprimant le "." et il est important que ce soit dans cet ordre.

Donc voilà, si quelqu'un a une solution magique, je suis preneur.

Je vous laisse libre des outils tant que ça fonctionne sur Mac OS X Serve v10.6.3. On peut bien sûr passer par un ldif intermédiaire qui ajouterait un nouvel "uid: ablpertoisvo" si nécessaire, ça ne me pose pas de problème majeur tant que cet attribut est ajouté avant l'existant dans l'ordre pour être certain qu'ensuite la valeur sera mis dans le bon ordre dans le fichier final généré par ldap2csv.pl.

D'avance merci,

PS : j'espère n'avoir rien oublié, n'hésitez pas à me demander des précisions si je n'ai pas été assez clair, bien entendu.


-- 
90.    Ooohh, lovely, it runs SVR4
101 Things You Do Not Want Your System Administrator To Say



_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr