Traitement de fichier - chaine de caractères [Shell] - Shell/Batch - Programmation
Marsh Posté le 12-08-2005 à 16:05:03
tu n'a jamais essayé les scripts awk ?
ca te prendrait qqs minutes à faire avec un code genre :
Code :
|
le script awk parse ton fichier ligne par ligne et, pour chaque ligne, réalise les instructions à la suite ...
et tu n'as plus qu'à appeler ton script
"awk tonscript.awk tonfichierannuaire.txt > tonnouveaufichierannuaire.txt"
va voir là pour plus d'informations sur les scripts awk :
http://w3.uqah.uquebec.ca/DOC/unx_awk.html
Marsh Posté le 12-08-2005 à 16:11:25
Si ce n'est pas trop indiscret, pourrais-tu préciser quel est le système d'exploitation, même s'il semble que cela soit de l'unix ? Est-ce pour le Korn-shell ou le C-shell ? Est-ce que chaque paragraphe se termine toujours par une ligne vide ? Est-ce qu'il peut-y avoir des lignes vides à l'intérieur d'un paragraphe ? Ou bien faut-il insérer systématiquement au niveau de la 7eme ligne ?
Voici une petite solution, que je n'ai pas testée, mais qui peut donner une idée
|
Marsh Posté le 12-08-2005 à 16:21:45
utilise perl/python/ruby, y a tout ce qu'il faut pour faire du ldap simplement.
Marsh Posté le 12-08-2005 à 16:42:55
D'abord merci pour vos réponses!
Citation : tu n'a jamais essayé les scripts awk ? |
Non et je crois qu'il est temps de rattraper ce retard!
Citation : Si ce n'est pas trop indiscret, pourrais-tu préciser quel est le système d'exploitation, même s'il semble que cela soit de l'unix ? Est-ce pour le Korn-shell ou le C-shell ? Est-ce que chaque paragraphe se termine toujours par une ligne vide ? Est-ce qu'il peut-y avoir des lignes vides à l'intérieur d'un paragraphe ? Ou bien faut-il insérer systématiquement au niveau de la 7eme ligne ? |
Non pas d'Unix mais une simple Fedora 3 avec un bon vieux bash. Concernant la structure des fichiers ldif, chaque paragraphe doit se terminer par une ligne vide (et donc pas de ligne vide dans le paragraphe même) Quand à l'insertion, peu importe sa place dans le paragraphe (je la voyais bien en dernière ligne).
Citation : utilise perl/python/ruby, y a tout ce qu'il faut pour faire du ldap simplement. |
Ouais mais en fait il n'y a rien de spécifique à ldap là dedans. Ca aurait très bien pu être un ficher texte tout bête avec des champs identique. En plus Python et Ruby me sont complètement inconnus...
Mon domaine est d'habitude le réseau et c'est assez rare que j'aligne du code (à part des sh tous simple) ... Enfin je fouille tout ça et je vous tiens au courant!
Marsh Posté le 12-08-2005 à 17:44:22
Avec ça :
Code :
|
ça marche au poil ! Encore merci de votre aide à tous !
Marsh Posté le 12-08-2005 à 15:23:08
Bonjour à tous,
J'aurais besoin de votre aide pour insérer automatiquement une concaténation de chaînes de caractères dans un fichier. Je m'explique:
J'ai un fichier ldif où chaque membres de mon annuaire ldap sont décris de la façon suivante:
dn: uid=p1.nom1,ou=people,dc=domain,dc=fr
objectClass: person
changetype: add
uid: p.nom1
sn: NOM1
givenName: prenom1
dn: uid=p2.nom2,ou=people,dc=domain,dc=fr
objectClass: person
changetype: add
uid: p.nom2
sn: NOM2
givenName: prenom2
(...)
Et ainsi pour environ 900 personnes
Il faudrait qu'à partir des champs givenName et sn, je puisse insérer, pour chaque user, un champ cn: de la forme cn: <givenName> <sn>. Ce qui donnerais:
dn: uid=p1.nom1,ou=people,dc=domain,dc=fr
objectClass: person
changetype: add
uid: p.nom1
sn: NOM1
givenName: prenom1
cn: prenom1 NOM1
dn: uid=p2.nom2,ou=people,dc=domain,dc=fr
objectClass: person
changetype: add
uid: p.nom2
sn: NOM2
givenName: prenom2
cn: prenom2 NOM2
(...)
Auriez-vous quelques pistes ? Mes grep & cut habituels ne semblent plus suffirent... J'ai fouillé du côté de l'outil read utilisé aumilieu de boucles mes je galère un peu
Merci d'avance!