我是新來的python和stackoverflow本身,這是我的第一篇文章。過濾多個文本模式並存儲它們以及它們各自的出現
2月1日00:00:02橋內核:外來TCP:IN = BR0 PHYSIN =爲eth0 OUT = BR0 PHYSOUT = eth1的SRC = XXX
我有看起來像這樣的一個日誌文件的工作。 XXX.XXX.XXX DST = XXX.XXX.XXX.XXX LEN = 40 TOS = 0x00 PREC = 0x00 TTL = 110 ID = 12973 PROTO = TCP SPT = 220 DPT = 6129 WINDOW = 16384 RES = 0x00 SYN URGP = 0
我需要搜索冒號之間的所有內容。在這一行匹配的模式將是INBOUND TCP,但還有其他類型的模式。
我必須搜索該字段,存儲所有唯一類型以及它們在文件中出現的次數。
我已經知道如何打開文件並使用re.compile解析它,並且我設法將唯一結果保存在另一個文本文件中。
閱讀文檔我想我需要使用某種循環的字典來存儲不同的模式和它們的出現編號。
有人可以幫助我嗎?
謝謝,如果閱讀了這麼多。所有的
#!/usr/bin/python3
import sys
import os
import re
p= re.compile ('bridge kernel:.*:')
with open (sys.argv[1], "r") as f:
with open ('tipos.txt',"w") as f2:
for line in f:
if p.search(line):
f2.write(line.split(":")[3] + '\n')
os.system('sort tipos.txt|uniq > tipos2.txt')
dict={}
with open (sys.argv[1],"r") as log:
with open ('tipos2.txt','r') as f:
for l in f:
if f in log:
dict={"(f.line)", "(len(log))"}
print (dict)
我們不是爲了解決您的問題,而是幫助您解決問題。之後,我們可以討論優化。這就是說,讓我們看看你的代碼,你的嘗試和你得到什麼,而不是你需要得到什麼。 – Fallenreaper
順便說一下,'00'也在冒號之間。你計劃使用哪種正則表達式? – randomir
我現在正在家,現在我無法訪問我的代碼。明天我將能夠在這裏發佈它,我是否應該編輯我的文章幷包括它或者我應該在評論中發佈它?謝謝。 – inu86