Sed

在同一行中的多個重複模式中替換文本

  • April 16, 2021

我有這樣的東西;

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>

它環繞著整條線。有什麼辦法繞過它?

注意:我使用的是 sed 的 GNU 版本

您可以使用 GNU 執行以下操作sed

$ sed 's:\*\*\([^*]*\)\*\*:<b>\1</b>:g' a.txt 
I like reading <b>books</b> and taking <b>notes</b>

該模式擷取不是萬用字元\*\*\([^*]*\)\*\*之間的字元串。最後,您在標籤之間替換擷取的組。**...**``*

引用自:https://unix.stackexchange.com/questions/645465