我有这样的东西;
I like reading **books** and taking **notes**
我试图得到这样的东西;
I like reading <b>books</b> and taking <b>notes</b>
尝试做;
sed 's/\*\*\(.*\)\*\*/<b>\1<\/b>/g' a.txt
这返回;
I like reading <b>books** and taking **notes</b>
它环绕整条线。有什么办法可以绕过它吗?
注意:我使用的是 GNU 版本的 sed
答案1
您可以使用 GNU 执行以下操作sed
:
$ sed 's:\*\*\([^*]*\)\*\*:<b>\1</b>:g' a.txt
I like reading <b>books</b> and taking <b>notes</b>
该\*\*\([^*]*\)\*\*
模式捕获之间的字符串,该**...**
字符串不是通配符*
。最后,您可以在标签之间替换捕获的组本身。