Suppression de caractères en bash

Résolu
Marie54 -  
 Marie54 -
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
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

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

Devrait convenir ;-))
1
Marie54
 
Merci cela marche très bien. Pourrais tu m'expliquer la ligne s'il te plaît.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
Marie54
 
OK merci
0