Modifier fichier csv avec sed
Résolu
thomas
-
thomas -
thomas -
Bonjour,
je débute en sed depuis quelques jours et j ai pas encore le niveau pour accomplir la tache suivante :
j ai un fichier csv contenant une liste de login , host (ex @hotmail.com), password, champ4, champ5, etc ... séparés par des ","
cependant certaines lignes ne contiennent pas le champ host, soit elles contiennent un champ vide (,,) et c est bon, soit elles le sautent (login,password) et ca c est pas bon c est ce que je dois corriger, et rajouter une "," dans ces cas la
donc mon code sed doit identifier les lignes ne contenant pas de @ et parmis celles ci identifier celles dont la première occurrence de "," n est pas directement suivie dune deuxième "," et la rajouter, et modifier le fichier (ca je sais -i :p)
ex:
toto,@hotmail.com,tutu,bla1,bla2 <--ok
titi,,tata,bla1,bla2 <--ok
tete,tyty,bla1,bla2 pas bon, je dois rajouter le champs host vide (,,)
merci de votre aide
je débute en sed depuis quelques jours et j ai pas encore le niveau pour accomplir la tache suivante :
j ai un fichier csv contenant une liste de login , host (ex @hotmail.com), password, champ4, champ5, etc ... séparés par des ","
cependant certaines lignes ne contiennent pas le champ host, soit elles contiennent un champ vide (,,) et c est bon, soit elles le sautent (login,password) et ca c est pas bon c est ce que je dois corriger, et rajouter une "," dans ces cas la
donc mon code sed doit identifier les lignes ne contenant pas de @ et parmis celles ci identifier celles dont la première occurrence de "," n est pas directement suivie dune deuxième "," et la rajouter, et modifier le fichier (ca je sais -i :p)
ex:
toto,@hotmail.com,tutu,bla1,bla2 <--ok
titi,,tata,bla1,bla2 <--ok
tete,tyty,bla1,bla2 pas bon, je dois rajouter le champs host vide (,,)
merci de votre aide
A voir également:
- Modifier fichier csv avec sed
- Fichier bin - Guide
- Modifier dns - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Modifier extension fichier - Guide
1 réponse
Salut,
;-))
$ cat thomas toto,@hotmail.com,tutu,bla1,bla2 titi,,tata,bla1,bla2 tete,tyty,bla1,bla2 toto,@hotmail.com,tutu,bla1,bla2 titi,,tata,bla1,bla2 tete,tyty,bla1,bla2 $ sed '/@/!{/[^,]*,,/!s/,/&,/}' thomas toto,@hotmail.com,tutu,bla1,bla2 titi,,tata,bla1,bla2 tete,,tyty,bla1,bla2 toto,@hotmail.com,tutu,bla1,bla2 titi,,tata,bla1,bla2 tete,,tyty,bla1,bla2 $
;-))
merci :)