Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@davidfoerster
Created August 22, 2018 10:59
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 davidfoerster/c35afe1c62f1468205a6f56b0cb9b44b to your computer and use it in GitHub Desktop.
Save davidfoerster/c35afe1c62f1468205a6f56b0cb9b44b to your computer and use it in GitHub Desktop.
Filter log time stamps for https://askubuntu.com/q/1067476/175814
#!/usr/bin/python3
import sys
import locale
import functools
from datetime import datetime
timefmt = '%b %d %H:%M:%S'
def parse_arg_time(s):
try:
s = int(s)
except ValueError:
return datetime.strptime(s, timefmt)
else:
return datetime.utcfromtimestamp(s)
def filter_log_time(start, end, line):
try:
t = datetime.strptime(line[:15], timefmt)
except ValueError:
return False
return start <= t <= end
locale.setlocale(locale.LC_TIME, 'POSIX')
start = sys.argv[1]
start = parse_arg_time(start) if start else datetime.min
end = len(sys.argv) > 2 and sys.argv[2]
end = parse_arg_time(end) if end else datetime.max
sys.stdout.writelines(filter(
functools.partial(filter_log_time, start, end),
sys.stdin))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment