打印条件在 python/bash 中的特定范围的行

Print specific range of lines with condition in python/bash

这是示例代码

    DEBUG: extra
    DEBUG:Fri Dec  7 06:48:47 2018:16920:QOP: final output is test testtset
    output output
    output
    DEBUG: extra extra
    DEBUG: extra

我的代码充满了这样的块,我想从 "final output is" 获取所有输出到所有块的最后一个输出语句。

预期输出:

 test testtset
    output output
    output

我的代码:

stream=open("debuglog.txt","r")
lines=stream.readlines()

for i in lines:
        if ("final output is" in i):
                print lines[lines.index(i)]

目前我的代码只打印包含文本 "final output is" 的行,但我希望它打印完整输出直到下一个 "DEBUG:"

试试这个:

stream=open("debuglog.txt","r")
lines=stream.readlines()

keep_line = False
for i in lines:
    if "DEBUG:" in i:
        keep_line = False
    if "final output is" in i:
        keep_line = True
    if keep_line:
        print(i)

它基本上循环遍历 "final output is" 之后的每一行,直到找到另一个 "DEBUG:"。

希望对您有所帮助。