Você pode tentar este comando sed
:
sed 's/\[[^]]\+\]/[]/;s/$/{.myclass}/' <<< ''
Eu tenho um arquivo Markdown com listagens de imagens da seguinte forma.

Usando sed
, desejo convertê-lo para o formato a seguir, mas não consigo definir o padrão correto.
{.my-class}
[ Atualizar ]
Um pouco mais de contexto. Meus arquivos do Markdown são semelhantes,
Hello

World
Eu preciso convertê-los em lote para
Hello
{.my-class}
World
De outras respostas no Stackoverflow, concluí que o padrão \[[^]]\]
pode ser usado para corresponder aos colchetes. Usando isso, eu poderia fazer a transformação, ou seja,
sed 's,^\!\[[^]]\+\]\(.*\)$,[],g' file.md
--> Works! Gives[](images/sl/2012-06-18.png)
Mas se eu acrescentar {.my-class}
ao final, isso estraga tudo.
sed 's,^\!\[[^]]\+\]\(.*\)$,[]\{.my-class\},g' file.md
--> doesn't work! Gives{.my-class}(static/images/image.png)
Então, basicamente, como posso usar {
no padrão de substituição?
Tags sed regular-expression