【发布时间】:2015-04-24 15:58:03
【问题描述】:
我想创建一个 sed 或 awk 脚本,在 awk -f script.awk oldfile > newfile 上将给定的文本文件 oldfile 转换为内容
Some Heading
example text
Another Heading
1. example list item, but it
spans over multiple lines
2. list item
进入一个新的文本文件newfile,内容如下:
{Some Heading:} {example text}
{Another Heading:} {
[item] example list item, but it spans over multiple lines
[item] list item
}
进一步描述以消除可能的歧义:
- 脚本应相应地替换每个块(即行,由空行封装)。
- 在一个文本文件中,可能会出现多个这样的块,但不清楚它们出现的顺序。
- 脚本应根据标题(即块的第一行)后跟项目列表(以“1.”开头的行表示)有条件地进行替换。
- 块总是用空行分隔。
如何使用 sed 或 awk 完成此任务? (我使用 zsh 以防万一。)
补充:我刚刚发现我确实需要事先知道块是否是列表:
heading
1. foo
2. bar
到
{list: heading}{
[item] foo
[item] bar
}
所以如果是列表,我需要输入“列表:”。这个也可以吗?
【问题讨论】: