Wie ersetze ich gepaarte eckige Klammern durch andere Syntax mit sed?

Ich möchte alle Paare von eckigen Klammern in einer Datei ersetzen, z.[some text]mit\macro{some text}, z.B.:

This is some [text].
This [line] has [some more] text.

Dies wird:

This is some \macro{text}.
This \macro{line} has \macro{some more} text.
Die Paare treten nur in einzelnen Zeilen auf, niemals in mehreren Zeilen.Manchmal kann es mehr als ein Paar in einer einzelnen Zeile geben, aber sie sind niemals verschachtelt.Wenn eine Klammer alleine in einer Zeile ohne ein Paar gefunden wird, sollte sie nicht geändert werden.

Wie kann ich diese Klammerpaare durch diesen Code ersetzen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage