parsing - Remove line pattern script in Python not fully functional -


for logs parsing, need remove pattern in log file:

pattern:

acces : lecture donnees (ou liste de repertoire) privileges : - nombre de sid restreint : 0 masque d acces : 0x1 "

log sample:

# line has kept 2014-03-03 09:50:20,2014-03-03 09:50:20,560,success audit event,accès aux objets,security,la\user1,la-server1,"objet ouvert : serveur de l’objet : security type d’objet : file objet : \vol\vol01\prod\prod.conf identificateur du handle : 554 identificateur de l’opération : - id du processus : 2050 nom du fichier image : server soft utilisateur principal : user1 domaine principal : la id d’ouv. de session principale : (0x0, 0x9596) utilisateur client : 1.2.3.4 domaine client : - id d’ouv. de session client : - acces : lecture données (ou liste de répertoire) Écriture données (ou ajout fichier) ajout données (ou ajout sous-répertoire ou créer instance de canal) write_dac privilèges : - nombre de sid restreint : 0 masque d’accès : 0x40007 " # line has removed 2014-03-03 09:52:20,2014-03-03 09:50:20,560,success audit event,accès aux objets,security,la\user2,la-server1,"objet ouvert : serveur de l’objet : security type d’objet : file objet : \vol\vol01\prod\prod.conf identificateur du handle : 554 identificateur de l’opération : - id du processus : 2050 nom du fichier image : server soft utilisateur principal : user1 domaine principal : la id d’ouv. de session principale : (0x0, 0x9597) utilisateur client : 1.2.3.5 domaine client : - id d’ouv. de session client : - **acces : lecture donnees (ou liste de repertoire) privileges : - nombre de sid restreint : 0 masque d acces : 0x1 "** # line has removed 2014-03-03 09:53:20,2014-03-03 09:50:20,560,success audit event,accès aux objets,security,la\user3,la-server1,"objet ouvert : serveur de l’objet : security type d’objet : file objet : \vol\vol01\prod\prod.conf identificateur du handle : 554 identificateur de l’opération : - id du processus : 2050 nom du fichier image : server soft utilisateur principal : user1 domaine principal : la id d’ouv. de session principale : (0x0, 0x9597) utilisateur client : 1.2.3.6 domaine client : - id d’ouv. de session client : - **acces : lecture donnees (ou liste de repertoire) privileges : - nombre de sid restreint : 0 masque d acces : 0x1 "** 

i found script here (thx atoztoa) job (i added sys module):

import sys fname = sys.argv[1]  def delete_line(dello):      data = open(fname).readlines()      = 0     line in data:         if dello in line:            data.pop(i)         += 1     open(fname, "w").write("".join(data)) delete_line("acces : lecture donnees (ou liste de repertoire) privileges : - nombre de sid restreint : 0 masque d acces : 0x1\"") 

when run script, didn't remove 2 lines of logs contain pattern : 1 of two.

i have run once or twice again script delete lines

i don't know why.

you shouldn't increment i when calling pop(). also, shouldn't use pop() when iterating on list. because if remove element middle of list, skip items while iterating.

you should rewrite delete_line() follows:

def delete_line(dello):     open(fname) f:         data = [line line in f if dello not in line]     open(fname, 'w') f:         f.write(''.join(data)) 

(note there room improvement.)

an problem giving delete_line() wrong argument: there's space between 0x1 , ". correct line:

delete_line('acces : lecture donnees (ou liste de repertoire) privileges : - nombre de sid restreint : 0 masque d acces : 0x1 "') 

by way, there's excellent program filters out lines file: it's grep (with -v option).


Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

angularjs - ng-repeat duplicating items after page reload -