#1 Le 30/11/2009, à 23:01
- Hizoka

[résolu] Découpage chaine avec délimiteurs présent plusieurs fois
Bonsoir !
je me prends la tête depuis un petit moment là...
je vous expose mon probleme :
Soit la chaine :
--title="Ceci est un titre" --text="Et en voici son contenu" --icon="adresse icone" --heure="il est 23h"je voudrais supprimer toute la partie :
--text => jusqu'au prochain -- (donc la --icon).donc il me resterait :
--title="Ceci est un titre" --icon="adresse icone" --heure="il est 23h"Sachant que cela sera TOUJOURS --texte mais que le -- suivant sera lui différent...
j'ai passé 3 plombs sur SED, je sais qu'il le permet mais je n'y arrive pas...
je ne poste pas toutes les solutions que j'ai testé....
merci !!!
Dernière modification par Hizoka (Le 30/11/2009, à 23:46)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#2 Le 30/11/2009, à 23:44
- Hizoka

Re : [résolu] Découpage chaine avec délimiteurs présent plusieurs fois
bon j'ai résolu en faisant ça :
sed 's/--text="[^"]*" //'Pour ceux que ça intéresse, cela veut dire :
s : remplace (sed 's/ancine/nouveau/')
[^"] : tout sauf "
[^"]* : tout sauf * autant de fois de suite que besoin
[^"]*" : tout sauf * autant de fois de suite que besoin jusqu'à " (comme par hasard :p)
--text="[^"]*" : recherche donc un texte qui commence par --text et qui se termine par "
// :remplace le texte précédant par "rien" (donc supprime).de ce fait ça fonctionne ![]()
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#3 Le 01/12/2009, à 17:23
- Totor

Re : [résolu] Découpage chaine avec délimiteurs présent plusieurs fois
Bonsoir,
une façon très tordue de le faire :
uneChaine="--title=\"Ceci est un titre\" --text=\"Et en voici son contenu\" --icon=\"adresse icone\" --heure=\"il est 23h\""
oldIFS="${IFS}"
IFS="--"
# transformation en tableau
uneChaine=( ${uneChaine} )
IFS="${oldIFS}"
# restauration des -- supprimés par la transformation en tableau
uneChaine=( "${uneChaine[@]/#/--}" )
# suppression de l'élément souhaité
uneChaine=( "${uneChaine[@]/--text=*}" )
# suppression des -- superfux
uneChaine=${uneChaine[@]/%--}-- Lucid Lynx --
Hors ligne
#4 Le 01/12/2009, à 17:43
- Hizoka

Re : [résolu] Découpage chaine avec délimiteurs présent plusieurs fois
un chouille plus tordue en effet ![]()
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#5 Le 01/12/2009, à 21:12
- Totor

Re : [résolu] Découpage chaine avec délimiteurs présent plusieurs fois
Peut-être tordue mais...
time { uneChaine="--title=\"Ceci est un titre\" --text=\"Et en voici son contenu\" --icon=\"adresse icone\" --heure=\"il est 23h\""; for((x=0;x<=10000; x++)); do texte="$(sed 's/--text="[^"]*" //' <<< "${uneChaine}")";done ; }
real 0m24.387s
user 0m9.673s
sys 0m13.157stime { uneChaine="--title=\"Ceci est un titre\" --text=\"Et en voici son contenu\" --icon=\"adresse icone\" --heure=\"il est 23h\""; for((x=0;x<=10000; x++)); do oldIFS="${IFS}"; IFS="--"; texte=( ${uneChaine} ); IFS="${oldIFS}"; texte=( "${texte[@]/#/--}" ) ; texte=( "${texte[@]/--text=*}" ); texte=${texte[@]/%--}; done ; }
real 0m3.440s
user 0m3.440s
sys 0m0.004s
^^ ![]()
-- Lucid Lynx --
Hors ligne
#6 Le 01/12/2009, à 23:22
- Hizoka

Re : [résolu] Découpage chaine avec délimiteurs présent plusieurs fois
aller ! va pour ta facon de tordue ![]()
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne