Modifier fichier csv avec sed

Résolu/Fermé
thomas - Modifié par thomas le 21/11/2010 à 16:34
 thomas - 21 nov. 2010 à 16:55
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
21 nov. 2010 à 16:48
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
ahahah trop fort :p , j m en doutais que ca pouvais s faire en une ligne
merci :)
0