使用'sed'或'awk'转换文本

Dav*_*ger 3 awk transform sed

我有一个非常大的输入集,看起来像这样:

Label: foo, Other text: text description...
   <insert label> Item: item description...
   <insert label> Item: item description...
Label: bar, Other text:...
   <insert label> Item:...
Label: baz, Other text:...
   <insert label> Item:...
   <insert label> Item:...
   <insert label> Item:...
...
Run Code Online (Sandbox Code Playgroud)

我想将其转换为拉出标签名称(例如"foo")并将"<insert label>"以下行中的标签替换为实际标签.

Label: foo, Other text: text description...
   foo Item: item description...
   foo Item: item description...
Label: bar, Other text:...
   bar Item:...
Label: baz, Other text:...
   baz Item:...
   baz Item:...
   baz Item:...
...
Run Code Online (Sandbox Code Playgroud)

这可以用sed或awk或其他unix工具完成吗?如果是这样,我该怎么做?

Hai*_* Vu 5

这是我的label.awk文件:

/^Label:/ {
    label = $2
    sub(/,$/, "", label)
}

/<insert label>/ {
    sub(/<insert label>/, label)
}

1
Run Code Online (Sandbox Code Playgroud)

要调用:

awk -f label.awk data.txt
Run Code Online (Sandbox Code Playgroud)