/ tools / scripts / misc / bm_concat_logs.py
bm_concat_logs.py
 1  import sys
 2  import datetime
 3  
 4  def parse_timestamp(line):
 5      timestamp_str = line.split("|")[0].strip()
 6      # Remove 'Z' if present
 7      if timestamp_str.endswith('Z'):
 8          timestamp_str = timestamp_str[:-1]
 9      return datetime.datetime.fromisoformat(timestamp_str)
10  
11  def merge_logs(file1, file2, output_file):
12      with open(file1, 'r') as f1, open(file2, 'r') as f2, open(output_file, 'w') as out:
13          lines1 = f1.readlines()
14          lines2 = f2.readlines()
15  
16          # Sort lines by timestamp
17          sorted_lines = sorted(lines1 + lines2, key=parse_timestamp)
18  
19          for line in sorted_lines:
20              out.write(line)
21  
22  if len(sys.argv) != 4:
23      print("Usage: python script.py <input_file1> <input_file2> <output_file>")
24  else:
25      merge_logs(sys.argv[1], sys.argv[2], sys.argv[3])