AWK - 将上一行添加到下两行的开头

Bla*_*ze9 0 awk

我有一个看起来像这样的文档:

Bob:
This is my line
This is also my line
Alfred:
What a great day!
What should we do!
Jess:
Its so hot
Lets go to the Beach
Run Code Online (Sandbox Code Playgroud)

格式总是一样的,总是一样的

speaker
line1
line2
speaker
line1
line2
Run Code Online (Sandbox Code Playgroud)

从来没有额外的线路等。

我希望“扬声器”位于每一行的开头,因此在我的示例中是:

Bob: This is my line
Bob: This is also my line
Alfred: What a great day!
Alfred: What should we do!
Jess: Its so hot
Jess: Lets go to the Beach
Run Code Online (Sandbox Code Playgroud)

我试过使用 awk 提取每个“第 n”行

awk '{if (NR % 3 == 1) print $0}'
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将它添加回下两行的开头。

谢谢你的帮助

Fre*_*ddy 5

awk 'NR%3==1{ name=$0; next } { print name, $0 }' file
Run Code Online (Sandbox Code Playgroud)

如果条件为真,则将记录保存到变量name并继续next记录。

name否则打印和当前记录。