[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [SHELL] remplacer un caractère dans une sous-chaine



Le 20/12/07, Guillaume Coeugnet<gcoeugnet@partner.auchan.com> a écrit :
> > -----Message d'origine-----
> > De : zelos 414 [mailto:zelos414@gmail.com]
> > Envoyé : jeudi 20 décembre 2007 11:02
> > À : Debianfr List
> > Objet : [SHELL] remplacer un caractère dans une sous-chaine
> >
> > Bonjour la liste,
> >
> >
> > Je me heurte depuis quelques temps à un souci de substitution
> > de caractère dans une sous-chaine.
> >
> > Voici la chaîne d'origine:
> >
> > type[TEST] date[Sun Dec 16 15:45:53 CET 2007]
> > description[permission denied] level[critical]
> >
> > Quelquefois, je la reçois sous cette forme (remarquez qu'un
> > espace s'est inséré dans "perm ission" et "cri tical") :
> >
> > type[TEST] date[Sun Dec 16 15:45:53 CET 2007]
> > description[perm ission denied] level[cri tical]
> >
> > J'aimerai donc supprimer tous les espaces ' ' contenus entre
> > crochets SAUF dans ceux précédés de 'date' ou 'creationDate'
> >
> > Je pense que sed peut suffir mais je n'arrive pas à trouver.
> >
> > En effet:
> >
> > echo "description[perm ission denied] " | sed -e 's/\[.*\
> > .*]/\[\.*_\.*\]/g'
> >
> > et
> >
> > tr ' ' '_'
> >
> > ne sont pas corrects.
> >
> > Auriez-vous une idée?
> >
> > Merci.
> >
> > Zelos
> >
> >
>
> Pourquoi n'utilises tu pas un outil comme le perl qui est fait pour traiter
> des chaines de caractère ?
>
>

Je ne connais pas perl et tout le reste du script est en shell...


Reply to: