Modifier fichier csv avec sed

Résolu
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



A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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

$

;-))
0
thomas
 
ahahah trop fort :p , j m en doutais que ca pouvais s faire en une ligne
merci :)
0