Suppression de caractères en bash

Résolu
Bonjour,

J'aimerais savoir comment tester une ligne avec des champs séparé par des points virgule, et tester le caractère juste après. Si celui ci n'est pas un " on supprimer tout ce qu'il y a derrière jusqu'au prochain ;. Comme ceci:
J'ai ça:
"Bravo";"Hello"; "M01fg";"fg";"dfe";"ef5";"efe";"M36a";23,52;0,22;90,9;44,4;10,7;8,;"ad";"Mth";"s54";"M10:%H";"Mef";"Mfe";
et je veux ceci:
"Bravo";"Hello"; "M01fg";"fg";"dfe";"ef5";"efe";"M36a";"ad";"Mth";"s54";"M10:%H";"Mef";"Mfe";

Merci de votre aide

1 réponse

  1. Modérateur
    Salut,

    sed 's/;[^"]*;/;/g' 

    Devrait convenir ;-))
    1
    1. Merci cela marche très bien. Pourrais tu m'expliquer la ligne s'il te plaît.
      0
    2. Modérateur
      En fait j'ai pris le problème autrement...

      On substitue toutes séquences de caractères commençant par un point virgule jusqu'à ce qu'on rencontre un autre point virgule sous condition qu'on ne trouve pas trace entre les deux d'un guillemet, par un point virgule.
      0
    3. OK merci
      0