在 macOS 上的匹配项前后插入空行

在 macOS 上的匹配项前后插入空行

我的文件包含字符串:

∗Cast and characters
* Bob Denver is Gilligan

我想将该行插入到以一个或多个空格开头的* ATTENTION *任何行中。*它前面将有一个空行,后面会在其上方插入一个空行。
我有:

/^\*[ \t]/i\
\* ATTENTION \*

它给了我

∗Cast and characters
* ATTENTION *
* Bob Denver is Gilligan 

但我想要 :

∗Cast and characters 

∗ ATTENTION ∗

∗ Bob Denver is Gilligan

注意:我有 BSD 版本的 sed,所以我无法使用\n

答案1

你就快到了。只需要在插入的文本中添加转义换行符即可。

/^\*[ \t]/i\
\
\* ATTENTION \*\

然而,惯用的做法是:

/^[*][[:blank:]]/!b
H;s/.*//;x
s/./&** ACHTUNG **&&/

相关内容