Script sh pour création de fichier .ldif(csv)
Fermé
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
-
3 août 2012 à 17:23
madavekia Messages postés 31 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 6 janvier 2015 - 6 août 2012 à 17:59
madavekia Messages postés 31 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 6 janvier 2015 - 6 août 2012 à 17:59
A voir également:
- Csv to ldif
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Honestech vhs to dvd - Forum Lecteurs et supports vidéo
17 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
3 août 2012 à 18:14
3 août 2012 à 18:14
Salut,
Remplace "nawk" par "awk", attention à ton séparateur (dans ton fichier ces ":" et non ";") :
Remplace "nawk" par "awk", attention à ton séparateur (dans ton fichier ces ":" et non ";") :
awk -F':' 'NR != 1 { printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5 }' user.csv > user.ldif
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 11:41
6 août 2012 à 11:41
Tout d'abord merci pour ton aide,
J'ai bien remplacé le nawk par un awk et j'ai rectifié la faute de syntaxe (":");mais
Je n'ai toujours aucun resultat, le fichier user.ldif est toujours vierge, en plus quand je tape la commande rien ne se passe ,j'ai le prompteur qui clignote sans pour autant etre sur le répertoire ou je lance cette dérniere (la commande) .........
J'ai bien remplacé le nawk par un awk et j'ai rectifié la faute de syntaxe (":");mais
Je n'ai toujours aucun resultat, le fichier user.ldif est toujours vierge, en plus quand je tape la commande rien ne se passe ,j'ai le prompteur qui clignote sans pour autant etre sur le répertoire ou je lance cette dérniere (la commande) .........
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 11:44
6 août 2012 à 11:44
Perso sur ton exemple de fichier plus haut, chez moi ça marche ;-\
Il nous faudrait un exemple concret de ton fichier (à mettre sur cjoint si possible) ?
Il vient d'où ton fichier csv ? C'est un fichier Windows ?
Il nous faudrait un exemple concret de ton fichier (à mettre sur cjoint si possible) ?
Il vient d'où ton fichier csv ? C'est un fichier Windows ?
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 14:39
6 août 2012 à 14:39
Le fichier users.csv est un fichier texte que j'ai remplis à la main , je suis sur une machine linux(fedora 17).
users.csv est identitque à l'exemple siter en haut, c'est à dire :
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
.
.
.
users.csv est identitque à l'exemple siter en haut, c'est à dire :
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
.
.
.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 14:43
6 août 2012 à 14:43
$ cat plop Identifiant;nom;prenom;adresse:mail id1:nom1:prenom1:adresse1:mail1 id2:nom2:prenom2:adresse2:mail2 $ awk -F':' 'NR != 1 { printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5}' plop dn: uid=id1, ou=People objectClass: Top cn: nom1 sn: prenom1 address: adresse1 mail: mail1 dn: uid=id2, ou=People objectClass: Top cn: nom2 sn: prenom2 address: adresse2 mail: mail2 $
Je ne peux rien de plus pour toi ;-\
dubcek
Messages postés
18777
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 mars 2025
5 630
6 août 2012 à 15:15
6 août 2012 à 15:15
hello
l'éditeur ajoute peut-être des ^M
que répond cat -A users.csv | head -3
l'éditeur ajoute peut-être des ^M
que répond cat -A users.csv | head -3
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 15:18
6 août 2012 à 15:18
Salut,
Il me semblait bien que "awk" était insensible au format M$ ;-)
Je viens d'en refaire l'expérience :
;-\
Il me semblait bien que "awk" était insensible au format M$ ;-)
Je viens d'en refaire l'expérience :
$ cat -A brol Identifiant;nom;prenom;adresse:mail^M$ id1:nom1:prenom1:adresse1:mail1^M$ id2:nom2:prenom2:adresse2:mail2^M$ $ awk -F':' 'NR != 1 { printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5}' brol dn: uid=id1, ou=People objectClass: Top cn: nom1 sn: prenom1 address: adresse1 mail: mail1 dn: uid=id2, ou=People objectClass: Top cn: nom2 sn: prenom2 address: adresse2 mail: mail2
;-\
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 15:30
6 août 2012 à 15:30
La reponse au cat -A users.csv | head -3 est l'affichage des trois premier enregistrement c'est à dire :
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
et l'idée c'est d'importer les données du fichier users.csv afin de creer un users.ldif que je pourrais ajouter à mon .ldif de ma base ldap
Merci d'avance pour votre aide
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
et l'idée c'est d'importer les données du fichier users.csv afin de creer un users.ldif que je pourrais ajouter à mon .ldif de ma base ldap
Merci d'avance pour votre aide
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 15:35
6 août 2012 à 15:35
La reponse au cat -A users.csv | head -3 est l'affichage des trois premier enregistrement c'est à dire :
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
Euh... non ! La réponse devrait être l'une ou l'autre des lignes qui suivent :
Donc merci de répondre au mieux aux demandes faites, faute de quoi ton sujet n'avancera pas ;-(
Identifiant;nom;prenom;adresse:mail
id1:nom1:prenom1:adresse1:mail1
id2:nom2:prenom2:adresse2:mail2
Euh... non ! La réponse devrait être l'une ou l'autre des lignes qui suivent :
$ cat -A plop | head -3 Identifiant;nom;prenom;adresse:mail$ id1:nom1:prenom1:adresse1:mail1$ id2:nom2:prenom2:adresse2:mail2$ $ cat -A brol | head -3 Identifiant;nom;prenom;adresse:mail^M$ id1:nom1:prenom1:adresse1:mail1^M$ id2:nom2:prenom2:adresse2:mail2^M$ $
Donc merci de répondre au mieux aux demandes faites, faute de quoi ton sujet n'avancera pas ;-(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 15:37
6 août 2012 à 15:37
Effectivement je me suis un peu précipité :
$ cat -A plop | head -3
Identifiant;nom;prenom;adresse:mail$
id1:nom1:prenom1:adresse1:mail1$
id2:nom2:prenom2:adresse2:mail2$
$ cat -A plop | head -3
Identifiant;nom;prenom;adresse:mail$
id1:nom1:prenom1:adresse1:mail1$
id2:nom2:prenom2:adresse2:mail2$
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 15:40
6 août 2012 à 15:40
Ok*, et que donne la commande "awk" sur cet exemple ? Elle marche ou pas ?
* Bien que ce soit un copier/coller de mon exemple ;-((
* Bien que ce soit un copier/coller de mon exemple ;-((
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:00
6 août 2012 à 16:00
J'ai biensur taper la commande
$ cat -A users.csv | head -3 et non avec ton exemple (plop), et pour ce qui est de la commande "awk" ca ne marche tjr pas et je ne comprends vraiment pas ce qui cloche.....
$ cat -A users.csv | head -3 et non avec ton exemple (plop), et pour ce qui est de la commande "awk" ca ne marche tjr pas et je ne comprends vraiment pas ce qui cloche.....
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 16:02
6 août 2012 à 16:02
Difficile de t'aider davantage sans matière à tester ;-((
Il se peut qu'il y ait des caractères non-imprimables dans ton fichier ;-\
Ou que la syntaxe employée dans awk ne convienne/corresponde pas tout a fait pour matcher ton fichier...
Il se peut qu'il y ait des caractères non-imprimables dans ton fichier ;-\
Ou que la syntaxe employée dans awk ne convienne/corresponde pas tout a fait pour matcher ton fichier...
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:10
6 août 2012 à 16:10
Pour résumer, j'ai un fichier texte (users.csv) et un autre vierge (users.ldif) et la commanda awk que j'essaye de faire passer.....resultat des courses, c'est que le prompt bloque, si au moins j'avais un message d'erreur ça m'aurais peut etre aider....
Autre chose : c'est des guillemets (") et non un (') avant le print , sinon j'ai un message d'erreur qui me dit que la chaine est pas refermé, mais comme tu dis que ça a marché chez toi ....
$ awk -F':' "NR != 1 { printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5}" users.ldif
qu'es ce que ten pense???
Autre chose : c'est des guillemets (") et non un (') avant le print , sinon j'ai un message d'erreur qui me dit que la chaine est pas refermé, mais comme tu dis que ça a marché chez toi ....
$ awk -F':' "NR != 1 { printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5}" users.ldif
qu'es ce que ten pense???
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 16:16
6 août 2012 à 16:16
Autre chose : c'est des guillemets (") et non un (') avant le print , sinon j'ai un message d'erreur qui me dit que la chaine est pas refermé, mais comme tu dis que ça a marché chez toi
Non, il faut des quotes simples autour de l'expression de "awk" impérativement !
Je viens d'essayer au cas ou en rajoutant un nom avec apostrophe dans le fichier csv et ça passe toujours (toujours avec des quotes simples autour).
Il y a quelque chose dans ton fichier qui interfère avec la syntaxe de awk, mais quoi ?
Non, il faut des quotes simples autour de l'expression de "awk" impérativement !
Je viens d'essayer au cas ou en rajoutant un nom avec apostrophe dans le fichier csv et ça passe toujours (toujours avec des quotes simples autour).
Il y a quelque chose dans ton fichier qui interfère avec la syntaxe de awk, mais quoi ?
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:26
6 août 2012 à 16:26
Dans mon fichier users.csv j'ai des password cryptés qui sont des chaines de caractétes alphanumerique (minuscules et majuscules confondus) , aprés ton post j'ai viré ce champ pour voir si c'etait lui qui posé probléme , mais RIEN !!!!
Voila le resultat du $ cat -A users.csv | head -3 de tout à l'heure ;
pbrunel:brunel:50D937CF1083828EAAD3B435B51404EE:3CB8FED01D4E00FF83095D014169698C:e1NTSEF9MmxKbS9IcE0xM2c2ODdlK3MvSWpIUDBHRWo5eFVrUnk=
qlamy:lamy:FE9352E46615FBB7C2265B23734E0DAC:4C706B2DA6E8624A6F3C7A7F143DE5F9:e1NTSEF9bEpMa0ZlNEg3QmxLdy9WMXBSUlBoZWt5TDZWeGJUTks=
pdiaz:diaz:AA9658E960287DDAAAD3B435B51404EE:C0F6AE8DE28EAE9EBFE3DE605DBE76C3
Voila le resultat du $ cat -A users.csv | head -3 de tout à l'heure ;
pbrunel:brunel:50D937CF1083828EAAD3B435B51404EE:3CB8FED01D4E00FF83095D014169698C:e1NTSEF9MmxKbS9IcE0xM2c2ODdlK3MvSWpIUDBHRWo5eFVrUnk=
qlamy:lamy:FE9352E46615FBB7C2265B23734E0DAC:4C706B2DA6E8624A6F3C7A7F143DE5F9:e1NTSEF9bEpMa0ZlNEg3QmxLdy9WMXBSUlBoZWt5TDZWeGJUTks=
pdiaz:diaz:AA9658E960287DDAAAD3B435B51404EE:C0F6AE8DE28EAE9EBFE3DE605DBE76C3
dubcek
Messages postés
18777
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 mars 2025
5 630
6 août 2012 à 16:35
6 août 2012 à 16:35
ça ne ressemble pas à un cat -A car les lignes devraient se terminer par un $
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 16:39
6 août 2012 à 16:39
Avec cet extrait de ton fichier et en virant le "NR != 1" qui ne sert plus à rien vu qu'il n'y a pas de ligne de titre, ben chez moi ça marche toujours ;-\
$ awk -F':' '{ printf "dn: uid=%s, ou=People\nobjectClass: Top\ncn: %s\nsn: %s\naddress: %s\nmail: %s\n\n",$1, $2, $3, $4, $5}' fich dn: uid=pbrunel, ou=People objectClass: Top cn: brunel sn: 50D937CF1083828EAAD3B435B51404EE address: 3CB8FED01D4E00FF83095D014169698C mail: e1NTSEF9MmxKbS9IcE0xM2c2ODdlK3MvSWpIUDBHRWo5eFVrUnk= dn: uid=qlamy, ou=People objectClass: Top cn: lamy sn: FE9352E46615FBB7C2265B23734E0DAC address: 4C706B2DA6E8624A6F3C7A7F143DE5F9 mail: e1NTSEF9bEpMa0ZlNEg3QmxLdy9WMXBSUlBoZWt5TDZWeGJUTks= dn: uid=pdiaz, ou=People objectClass: Top cn: diaz sn: AA9658E960287DDAAAD3B435B51404EE address: C0F6AE8DE28EAE9EBFE3DE605DBE76C3 mail: $
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:35
6 août 2012 à 16:35
OUI y'a un $ à la fin ....
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:36
6 août 2012 à 16:36
de chaque lignes
dubcek
Messages postés
18777
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 mars 2025
5 630
6 août 2012 à 16:39
6 août 2012 à 16:39
qu'affiche
awk -F':' '{print NF}'
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:42
6 août 2012 à 16:42
linux-1dl0:/ # awk -F':' '{print NF}'
0
0
0
0
0
0
0
0
il se passe rien, quand je tape sur entrée j'ai un 0
0
0
0
0
0
0
0
0
il se passe rien, quand je tape sur entrée j'ai un 0
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 16:45
6 août 2012 à 16:45
Avec le fichier en plus à la fin de la syntaxe, ce serait peut être mieux ;-))
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 16:48
6 août 2012 à 16:48
awk: ^ syntax error
dubcek
Messages postés
18777
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 mars 2025
5 630
6 août 2012 à 17:06
6 août 2012 à 17:06
ooooops, merci, faire
awk -F':' '{print NF}' users.csv
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 17:08
6 août 2012 à 17:08
awk -F':' '{print NF}' users.csv
5
5
5
5
1
5
5
5
5
1
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 17:43
6 août 2012 à 17:43
C'est bon ça marche... le probléme venait d'une erreur syntaxique
Grand MERCI à vous
Grand MERCI à vous
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
6 août 2012 à 17:44
6 août 2012 à 17:44
le probléme venait d'une erreur syntaxique
Laquelle histoire qu'on ne meure pas idiot ? ;-\ Merci ;-))
Laquelle histoire qu'on ne meure pas idiot ? ;-\ Merci ;-))
madavekia
Messages postés
31
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
6 janvier 2015
6 août 2012 à 17:59
6 août 2012 à 17:59
Tu mourras pas idiot l'ami, par contre moi j'ai vécu comme tel pendant trois jours :) ....
l'erreur c'etait le nombre de variables , j'en avais 8 et je n'en faisais passer que 7
l'erreur c'etait le nombre de variables , j'en avais 8 et je n'en faisais passer que 7
6 août 2012 à 11:49