我有一个包含图像列表的 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)'