如何根据"starting"和"ending"模式提取文件的各个部分



我尝试根据文本文件中发生(或有时重新出现)的特定模式提取文本文件的不同部分。到目前为止,我已经能够通过逐行读取文件然后抓取这一行来做到这一点,但我有一种感觉,这不是最有效的方法。有关模式的示例,请参阅下文:

policy-map type stackoverflow
    random lines of indented text
non-indented text (signifying the beginning of the next "section" in the file)

还有其他方法可以做到这一点吗?我在想像awk或sed这样的东西可能会起作用,但我对这些程序的使用不够熟练,不知道如何做到这一点。

with awk :

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

starting是任意起始字符串

您也可以使用 sed:

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

相关内容

  • 没有找到相关文章

最新更新