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