我有一个非常大的输入集,看起来像这样:
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工具完成吗?如果是这样,我该怎么做?
这是我的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)