Le 20/12/07, Guillaume Coeugnet<[EMAIL PROTECTED]> a écrit : > > -----Message d'origine----- > > De : zelos 414 [mailto:[EMAIL PROTECTED] > > 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...

