Portál AbcLinuxu, 11. května 2025 06:55
me = open(error_log, 'w+') vzor = ["error", "warn","unexpected"] for i in range(len(vzor)): regexp = vzor[i] vzor_regexp = re.compile(regexp, re.IGNORECASE) for line in file('cesta/k/logu'): test = vzor_regexp.findall(line) if test: me.write(line) me.close()
fgrep
? grep
alebo egrep
pre regulárne výrazy: Alternation
error|warn|unexpected
, aká hrubá sila?
#!/usr/bin/python import sys vzory = ["root", "/var", "10"] for line in file('/etc/passwd'): for vzor in vzory: if vzor in line: sys.stdout.write(line) breaktestoval jsem to na souboru s půlmiliónem řádků a je to o pár procent pomalejší než egrep.
error bla bla
error neco neco bla bla
ve vzoru bude treba = ["error"]#!/usr/bin/python import sys def jevzor(line, vzory): for vzor in vzory: if vzor in line: return True return False chci = ["root", "/var", "10"] nechci = ["nologin", "nfs"] for line in file('/etc/passwd'): low = line.lower() if jevzor(low, chci) and not jevzor(low, nechci): sys.stdout.write(line)Ale nevím, jak to bude rychlé. S ničím jsem to nesrovnával.
nechci = ["nologin", "nfs", "lighttpd web server", "Avahi daemon"]
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.