Sto lavorando con del testo pieno di cose tra parentesi [] che non voglio. Dal momento che posso eliminare le parentesi da solo, non ho bisogno di una riga per farlo per me, ma ho bisogno di una riga che rimuoverà tutto ciò che c'è tra di loro.
Che dire delle parentesi () invece delle parentesi?
Risposta accettata:
Sostituisci [some text]
dalla stringa vuota. Supponendo che tu non voglia analizzare le parentesi nidificate, il some text
non può contenere parentesi.
sed -e 's/[[^][]*]//g'
Nota che nell'espressione tra parentesi [^][]
per corrispondere a qualsiasi cosa tranne [
o ]
, il ]
deve venire prima. Normalmente un ]
terminerebbe il set di caratteri, ma se è il primo carattere del set (qui, dopo il ^
carattere di complemento), il ]
rappresenta se stesso.
Se vuoi analizzare le parentesi nidificate o se il testo tra parentesi può estendersi su più righe, sed non è lo strumento giusto.