如何使用sed在两个不同字符之间插入字符

如何使用sed在两个不同字符之间插入字符

在 Markdown 文件中,我有类似的字符串[can-be-anything](./can-be-any#vitedevserver),我想将它们更改为[can-be-anything](./can-be-any.html#vitedevserver).

我想插入.html之前#

我尝试跟随但它不起作用。

link=$(sed -e 's/.*](\.\/\(.*\)#.*/\1/g' $file)
sed -i "s|](./\(.*\)#|](./${link}.html#|g" $file

第一个获取can-be-any,第二个插入.html

我如何使用 Bash 和 sed 来做到这一点?

答案1

echo '[can-be-anything](./can-be-any#vitedevserver)' | sed 's/](\(\.\/.*\)#/](\1.html#/'

相关内容