sed -e's|^\$|/*&|;t$' -eb -e:$ -e'### handle top end of loop' \
-e's|);$|&*/|;t' -en -eb$ -e'### handle the bottom end'
data data data
/*$globaltext blah gibberjabber
somemorestuff etc
);*/
data data data
/*$otherjunk yada gibberish
etc etc
more etc
);*/
As duas tentativas s/// ubstitutions são t ested. No primeiro caso, se a substituição for bem-sucedida, sed não terminará com b ranching do script e se ramificará em vez do rótulo :$ . Quando não é bem-sucedido, ele não salta o comando b ranch e, assim, apenas ramifica e insere automaticamente as entradas até que ^\$ seja correspondido.
Depois de combinar, ele entra em um loop fechado começando em :$ e terminando em b$ e, portanto, não tenta a primeira s/// ubstitution novamente até que o loop seja concluído. Neste final do ciclo sed t ests o caso de correspondência );$ para uma s/// ubstitution bem-sucedida e, uma vez bem-sucedido, ramifica-se do script para reiniciar o ciclo a partir do topo novamente com a próxima linha de entrada, se houver. Até que ele faça a cópia automática recursiva, em seguida, sobreponha o espaço de padrão com a linha de entrada n ext para cada iteração - e, assim, nunca precisará de buffers desnecessários.