Forum Programmation.shell Awk et regexp

Posté par  .
Étiquettes : aucune
0
10
oct.
2008
Bonjour,
J'essaie de convertir un fichier ldif en csv avec awk, mais je bute sur une "syntax error" avec une regexp.

Voici le contenu du ldif :

dn: id=1,ou=person,o=myldapdirectory
name: p1
city: city1
mail: test@mail.com

dn: id=2,ou=other,o=myldapdirectory
datavalue: AAAjjjjjj

dn: id=3,ou=other2,o=myldapdirectory
code: 123456

dn: id=56,ou=person,o=myldapdirectory
name: person2
city: OtherCity
mail: mymail@me.com


Mon script awk :

/usr/bin/awk '
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 {
}'


A l'exécution sur un korn shell, j'obtiens :

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.


Une idée d'où peut venir le problème ?

Meric d'avance.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.