Les Allergies
Alimentaires
Posez votre question Signaler

Utilisation de sed

siham79 87Messages postés 2 juillet 2009Date d'inscription 23 mars 2011Dernière intervention - Dernière réponse le 28 juil. 2010 à 18:16
Bonjour,
Je reviens vers vous pour la 3éme fois (pour ne pas dire la n éme fois) car je n'arrive toujours pas à bien comprendre la commande "sed" :
j'ai mon fichier composé de 8 champs séparés par ";" et contenant les lignes suivantes:
01 ; 6407385 ; ville de clamart,92140,clamart ; fournitures ; ouvert ; 28/01/2008 ; 92 ; daniel loiseau gamme,333436418-37,94310,orly
01 ; 6407385 : ville de clamart,92140,clamart ; fournitures ; ouvert ; 28/01/2008 ; 92 ; ede ruy,304914211-20,69200,venissieux
sur le champ 8 qui est composé lui meme de 4 champs séparés par "," je veux supprimer ce qui vient aprés le tiret pour le 2éme champ comme ceci:
01 ; 6407385 ; ville de clamart,92140,clamart ; fournitures ; ouvert ; 28/01/2008 ; 92 ; daniel loiseau gamme,333436418,94310,orly
01 ; 6407385 : ville de clamart,92140,clamart ; fournitures ; ouvert ; 28/01/2008 ; 92 ; ede ruy,304914211,69200,venissieux
j'ai essayé toutes les possibilité de remplacement depuis ce matin mais toutes les formules ne marche pas!! est ce que quelqu'un pourra m'aider svp??
j'ai cette formule que vous m'avez dictée sed -r 's/(.*;)([^,]*),([^-]*)-(.*)/\1\3/'mon-fichier mais elle me supprime tous le champ 8 et elle garde que le chiffre. (01 ; 6407385 ; ville de clamart,92140,clamart ; fournitures ; ouvert ; 28/01/2008 ; 92 ; 333436418)
Lire la suite 

Utilisation de sed »

Suggestions
3 réponses
Réponse
+0
moins plus
Salut,

sed -r 's/(.*;)([^,]*,)([^-]*)-[^,]*(.*)/\1\2\3\4/'


Post de référence
jipicy- 28 juil. 2010 à 17:37
Rectificatif, c'est mieux comme ça :

sed -r 's/(.*;)([^-]*)-[^,]*(.*)/\1\2\3/'

;-))
jipicy- 28 juil. 2010 à 18:16
par contre est ce que vous pouvez m'expliquer le [^,]*

Ben c'est le même principe que "[^-]*", à part qu'ici on remplace le tiret par une virgule, donc on englobe tout ce qu'il y a après le tiret jusqu'à ce qu'on rencontre une virgule.
Ajouter un commentaire
Ce document intitulé « utilisation de sed » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?