如何根据“起始”和“结束”模式从文件中提取部分内容

4

我正在尝试根据出现的特定模式从文本文件中提取不同的部分(有时会重复出现)。到目前为止,我已经通过逐行读取文件然后在该行上使用grep命令来完成这个任务,但是我觉得这不是最有效的方法。请看下面的示例模式:

policy-map type stackoverflow

    random lines of indented text

non-indented text (signifying the beginning of the next "section" in the file)

还有没有其他的方法可以完成这个任务?我想到了类似awk或sed这样的程序可能会起作用,但是我不熟练使用这些程序,不知道应该如何去做。

2个回答

4

使用

awk '/^starting/{l=1;print;next} /^\S/{l=0} l' file

starting是一个任意的起始字符串


太酷了!!! - lzkill

0

你也可以使用sed:

sed -rn '/^pattern/ { :again p; n; /^$|^\s+/ b again; }' file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接