Bonjour,
J'essaie de convertir un fichier ldif en csv avec un script awk, mais je bloque sur une erreur de syntaxe.
Voilà le code de mon script awk :
- Un exemple de données de mon fichier ldif :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 function add_object() { if(typeObject="person") printf("%s:%s:%s\n", lName, lCity, lMail) > "data.csv" } BEGIN { typeObject = "" lName = "" lCity = "" lMail = "" } { /^dn:/ { typeObject = $2 } split(typeObject,tab,",") typeObject=tab[2] sub("/ou=/","",typeObject) print "DEBUG typeObject=" typeObject /^name:/ { lName = $2 } /^city:/ { lCity = $2 } /^mail:/ { lMail = $2 } add_object() typeObjet = "" lName = "" lCity = "" lMail = "" } END { }
Lorsque j'exécute le script, j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 dn: id=1515000013,ou=person,o=myldapdirectory name: p1 city: Here mail: test@mail.com dn: id=151506543,ou=other,o=myldapdirectory datavalue: AAAjjjjjj dn: id=1515000013,ou=other4,o=myldapdirectory code: 54515155 dn: id=1515054451500013,ou=person,o=myldapdirectory name: person2 city: Here mail: mymail@me.com
Je pense que ca vient de ma regexp, mais j'ai consulté le manuel, et l'exemple donné est conforme a ce que j'ai écrit, donc je ne comprends pas trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 syntax error The source line is 14. The error context is { /^dn:/ >>> { <<< typeObject = $2 } awk: The statement cannot be correctly parsed. The source line is 14. syntax error The source line is 20.
Merci d'avance pour votre aide.
Partager