Sed模式转换Markdown图像风格

Sed模式转换Markdown图像风格

我有一个包含图像列表的 Markdown 文件,如下所示。

![Some Text](static/images/image.png)

使用sed,我希望将其转换为以下格式,但无法找出正确的模式。

![](static/images/image.png){.my-class}

[更新]
更多背景信息。我的 Markdown 文件是这样的,

你好
![Some Text](static/images/image.png)
世界

我需要将它们批量转换为,

你好
![](static/images/image.png){.my-class}
世界

从 Stackoverflow 上的其他答案中,我了解到该模式\[[^]]\]可用于匹配方括号。使用它,我可以进行转换,即

sed 's,^\!\[[^]]\+\]\(.*\)$,[]\1,g' file.md--> 有效!给予[](images/sl/2012-06-18.png)

但如果我{.my-class}在最后追加,就会把事情搞砸。

sed 's,^\!\[[^]]\+\]\(.*\)$,[]\1\{.my-class\},g' file.md--> 不起作用!给予{.my-class}(static/images/image.png)

那么本质上,我如何{在替换模式中使用?

答案1

你可以尝试这个sed命令:

sed 's/\[[^]]\+\]/[]/;s/$/{.myclass}/' <<< '![Some Text](static/images/image.png)'

相关内容