Skip to content

Instantly share code, notes, and snippets.

@abhijitmamarde
Created April 4, 2023 11:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abhijitmamarde/6187c12d018914698cbbdedb3cfe863a to your computer and use it in GitHub Desktop.
Save abhijitmamarde/6187c12d018914698cbbdedb3cfe863a to your computer and use it in GitHub Desktop.
Get specific lines from log after a specific pattern
import re
import linecache
def find_line_with_pattern(log_file_name, pattern):
lines = open(log_file_name).readlines()
for i, line in enumerate(lines):
if re.match(pattern, line):
return i+1
def get_lines_data(log_file_name, from_line, how_many_lines):
numbers = [from_line+x for x in range(1, how_many_lines+1)]
# print(numbers)
lines = []
for number in numbers:
lines.append(linecache.getline(log_file_name, number))
return "".join(lines)
def get_log_lines(log_file_name, find_pattern, lines_after_pattern):
found_line_number = find_line_with_pattern(log_file_name, find_pattern)
log_lines = get_lines_data(log_file_name, found_line_number, lines_after_pattern)
print(log_lines)
if __name__ == "__main__":
get_log_lines(
log_file_name="D:\device_logs.txt",
find_pattern=".*, job document:",
lines_after_pattern=6
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment