ono je toblbé už na docela malé logy. Kdybyste tu smyčku přepsal do nějakého skriptovacího jazyka, nebude to delší ani hůře upravitelné a zrychlí se to mnohanásobně.
Tak aby řeč nestála...
#!/usr/bin/python3
import sys
import time
import datetime
fromtime=time.time()-(int(sys.argv[2])*24*3600)
with open(sys.argv[1], 'rU') as f:
for line in f:
ldate = (line[0:29])
secs=datetime.datetime.strptime(ldate, "%a %b %d %H:%M:%S %Z %Y").timestamp()
if secs > fromtime:
print(line,end="")
Nicméně pro velký logy je stejně nejefektivnější dohledat první vyhovující řádek a pak vypsat zbytek - třeba zkusit půlku souboru, větší/menší, půlku z půlky... v pár iteracích to najdeme a pak je to šup šup