Você pode tentar este comando sed
:
sed 's/\[[^]]\+\]/[]/;s/$/{.myclass}/' <<< '![Some Text](static/images/image.png)'
Eu tenho um arquivo Markdown com listagens de imagens da seguinte forma.
![Some Text](static/images/image.png)
Usando sed
, desejo convertê-lo para o formato a seguir, mas não consigo definir o padrão correto.
![](static/images/image.png){.my-class}
[ Atualizar ]
Um pouco mais de contexto. Meus arquivos do Markdown são semelhantes,
Hello
![Some Text](static/images/image.png)
World
Eu preciso convertê-los em lote para
Hello
![](static/images/image.png){.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