[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
Reply to: