#! /usr/bin/python WORKDIR='/tmp' WORKFILE='/tmp/access_log.ends.01May05' ALIASES='/tmp/aliases' SPACE=' ' SLASH='/' UNDERSCORE='_' alias = {} class Writer: def __init__(self, dirname): self.dirname = dirname self.files = {} def writeto(self, filename, line): self.files.setdefault(filename, file(self.dirname+'/'+filename, 'a')) self.files[filename].write(line) def mangle(line): return line.replace(SLASH, UNDERSCORE) for line in file(ALIASES): a = line.rstrip().split(SPACE)[-2] alias.setdefault(a, 0) alias[a] += 1 w = Writer(WORKDIR) for line in file(WORKFILE): uri = line.split(SPACE)[6].rstrip() while True: uri = SLASH.join(uri.split(SLASH)[0:-1]) if uri == '': w.writeto('log_catchall', line) break else: count = alias.get(uri,0) if count == 1: w.writeto('log'+mangle(uri), line) break