Suppression de caractères en bash

Résolu/Fermé
Marie54 - 24 juin 2010 à 11:05
 Marie54 - 24 juin 2010 à 13:13
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2010 à 11:56
Salut,

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

Devrait convenir ;-))
1
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juin 2010 à 13:11
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
OK merci
0