打印条件在 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:"。
希望对您有所帮助。
这是示例代码
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:"。
希望对您有所帮助。