Et de la même man page : special characters, including '\', lose their special significance within a bracket expression. En clair, le caractère '\' perd sa signification spéciale entre '[]'. Ce qui fonctionne : $ l'exemple de Bernard, . plusieurs substitutions dans un seul sed : $ echo "--[chaine]-" | sed 's/\[/-/g; s/\]/-/g' ---chaine-- . un sed "étendu" : $ echo "--[chaine]-" | sed -E 's/(\]|\[)/-/g' ---chaine-- -- Jean-Marc Le 14/12/20 à 16:11, Bernard Isambert a écrit : > man 7 regex : > Pour insérer un « ] » littéral dans la liste, il faut le mettre en > première position (ou après un éventuel « ^ »). > > echo "--[chaine]-" | sed 's/[][]/-/g' > ---chaine-- > > > Le 14/12/2020 à 14:51, benoit a écrit : >> Bonjour à toutes et tous, >> Je voudrais remplacer les caractères "[" et "]" avec sed, mais ils >> fonts partie du «regroupement» de caractère à sélectionner. Je les ai >> précédé d'un "\" ainsi : >> sed 's/[\[\]]/-/g' >> Mais ça ne marche pas... >> >> echo "--[chaine]-" | sed 's/[\[\]]/-/g' >> --[chaine]- >> >> Par contre ceci fonctionne : >> echo "--[chaine]--" | sed 's/\[/-/g' | sed 's/\]/-/g' >> ---chaine-- >> Même si ça marche, j'ai envie de comprendre... >> >> Merci d'avance >> >> -- >> Benoit >> >> >> Sent with ProtonMail <https://protonmail.com> Secure Email. >> >
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature