Como substituir colchetes emparelhados com outra sintaxe com sed?

Quero substituir todos os pares de colchetes em um arquivo, por exemplo,[some text]com\macro{some text}, por exemplo.:

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

Isso se torna:

This is some \macro{text}.
This \macro{line} has \macro{some more} text.
Os pares só ocorrem em linhas individuais, nunca em várias linhas.Às vezes, pode haver mais de um par em uma única linha, mas eles nunca são aninhados.Se um colchete for encontrado sozinho em uma linha, sem um par, ele não deverá ser alterado.

Como posso substituir esses pares de colchetes por esse código?

questionAnswers(4)

yourAnswerToTheQuestion