Je travaille avec un texte plein de choses entre crochets [] que je ne veux pas. Comme je peux supprimer les crochets moi-même, je n'ai pas besoin de la ligne unique pour le faire à ma place, mais j'ai besoin d'une ligne unique qui supprimera tout ce qui se trouve entre eux.
Qu'en est-il des parenthèses () au lieu des crochets ?
Réponse acceptée :
Remplacer [some text]
par la chaîne vide. En supposant que vous ne vouliez pas analyser les crochets imbriqués, le some text
ne peut pas contenir de crochets.
sed -e 's/[[^][]*]//g'
Notez que dans l'expression entre parenthèses [^][]
pour correspondre à tout sauf [
ou ]
, le ]
doit venir en premier. Normalement un ]
terminerait le jeu de caractères, mais si c'est le premier caractère du jeu (ici, après le ^
caractère de complémentation), le ]
se suffit à lui-même.
Si vous voulez analyser les crochets imbriqués, ou si le texte entre crochets peut s'étendre sur plusieurs lignes, sed n'est pas le bon outil.