我有一个看起来像这样的文档:
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)
但我不确定如何将它添加回下两行的开头。
谢谢你的帮助
awk 'NR%3==1{ name=$0; next } { print name, $0 }' file
Run Code Online (Sandbox Code Playgroud)
如果条件为真,则将记录保存到变量name并继续next记录。
name否则打印和当前记录。