如何添加带分隔符的多行行首?

how to add begin of line with multilines with delimiter?

我有这样一个文件:

输入:

---
a
b
c
d
---
a
b
c
d
---
a
b
c
d

我想在每个由 --- 分隔的块中添加相同的结构,例如:

输出:

---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d

我尝试像这样使用 sed:

sed -i '1s/a: //' 

等等,但它不断添加到第一行。

此致。

一个awk想法:

awk '{ pfx=++count ": "        # set default prefix as incremented counter + ": "
       if ([=10=] ~ /^---/)        # if lines starts with "---" then ...
           pfx=count=""        # reset variables
       print pfx [=10=]            # print prefix plus current line
     }' x

或作为 one-liner(无评论):

awk '{ pfx=++count ": "; if ([=11=] ~ /^---/) pfx=count=""; print pfx [=11=] }' x

这会生成:

---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d