Portál AbcLinuxu, 8. listopadu 2025 07:25
.
Stavaji skript:
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 egreppre 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)
break
testoval 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.