Bonjour,
J'ai beaucoup cherché, sans trouver de solution; avant de demander de l'aide en ligne.
Voila mon problème :
Je cherche à remplacer la valeur d'un attribut dans un fichier par la valeur d'un autre attribut.
Précision : le fichier en question, pour ceux qui connaissent, est un fichier de type "ldif" (extension .ldif), fichier qui contient par exemple, la liste des utilisateurs ldap avant l'intégration à ldap.
Le fichier est constitué comme ce-ci :
.....
DN: uid:jean.valjean,ou=Users,dc=local,dc=com
uid: jean.valjean
mail: jean.vlajean@local.com
gecos: gnagnagna
DN: uid:jean.paul,ou=Users,dc=local,dc=com
uid: jean.paul
mail: jean.paul@local.com
gecos: gnignigni
.....
Et il est constitué de X paragraphes avec à peut près la même structure.. je dis a peut près car des fois l'attribut gecos est avant l'attribut mail..
Ce que je veux faire en faite c'est de remplacer la valeur de l'attribut mail par la valeur de l'attribut gecos.
En gros sur l'exemple précédent j'aimerai obtenir :
.....
DN: uid:jean.valjean,ou=Users,dc=local,dc=com
uid: jean.valjean
mail: gnagnagna
gecos: gnagnagna
DN: uid:jean.paul,ou=Users,dc=local,dc=com
uid: jean.paul
mail: gnignigni
gecos: gnignigni
.....
j'ai trouvé le moyen d'extraire chacune des valeur.. mais pour le remplacement je n'y arrive pas..
Quelqu'un aurait une idée ? je pense que avec SED ou AWK ça doit être possible mais j'avoue que je sèche...
EDIT :
J'ai trouvé un moyen pas très propre mais qui se tiens pour le moment :
Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -e '/./{H;$!d;}' -e 'x;/gecos/!d;' /etc/ldap/test/fichier.ldif | sed /mail/d | sed s/gecos/mail/g
.....
DN: uid:jean.valjean,ou=Users,dc=local,dc=com
uid: jean.valjean
mail: gnagnagna
DN: uid:jean.paul,ou=Users,dc=local,dc=com
uid: jean.paul
mail: gnignigni
.....
Si quelqu'un à une meilleure idée..
Partager