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.
# c'est pas la regexp mais une accolade en trop
Posté par totof2000 . Évalué à 3.
[^] # Re: c'est pas la regexp mais une accolade en trop
Posté par yodaz . Évalué à 1.
[^] # Re: c'est pas la regexp mais une accolade en trop
Posté par totof2000 . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.